diff --git a/Add_Zero_Behind.as b/Add_Zero_Behind.as index 8dc31d42..973eb3dd 100644 --- a/Add_Zero_Behind.as +++ b/Add_Zero_Behind.as @@ -1,18 +1,12 @@ package { + import com.mteamapp.StringFunctions; + public class Add_Zero_Behind { - public function Add_Zero_Behind() - { - } public static function add(NumberZero_p:int,Number_p:int):String - { - var _numToStr:String = String(Number_p) - while(_numToStr.length contenth0) { var deltaY:Number = Math.max(0,ME1.myContent.height-contenth0) ; - trace("deltaY :"+deltaY+' > '+contenth0); + SaffronLogger.log("deltaY :"+deltaY+' > '+contenth0); //ME1.y = y0-deltaY/2 ; - trace("ME2.y positino changed to : "+ME1.y); - trace("ME2.name ?? "+ME1.name); + SaffronLogger.log("ME2.y positino changed to : "+ME1.y); + SaffronLogger.log("ME2.name ?? "+ME1.name); var minVisibleYOnStage:Number = (maxPageHeight-staticStageHeight)/-2; var maxVisibleYOnStage:Number = staticStageHeight+(maxPageHeight-staticStageHeight)/2; @@ -72,14 +72,14 @@ package var accepdetDeltaForContent:Number = Math.max(contentPoseBasedOnStage.y,ME1.titleContainerMC.localToGlobal(new Point(0,ME1.titleContainerMC.height)).y); var conentDeltaY:Number = ME1.myContent.parent.globalToLocal(new Point(0,accepdetDeltaForContent)).y ; ME1.myContent.setY(conentDeltaY) ; - trace("conentDeltaY : "+conentDeltaY); + SaffronLogger.log("conentDeltaY : "+conentDeltaY); var contentHeightBasedOnStage:Point = ME1.myContent.parent.localToGlobal(new Point(0,ME1.myContent.y+contenth0+deltaY)); var maxAcceptableYForHeight:Number = Math.min(contentHeightBasedOnStage.y,maxVisibleYOnStage); var maxAcceptableYOnContentArea:Point = ME1.myContent.parent.globalToLocal(new Point(0,maxAcceptableYForHeight)); - trace("maxAcceptableYForHeight : "+maxAcceptableYForHeight); - trace("maxAcceptableYOnContentArea.y : "+maxAcceptableYOnContentArea); - trace("ME1.myContent.y : "+ME1.myContent.y); + SaffronLogger.log("maxAcceptableYForHeight : "+maxAcceptableYForHeight); + SaffronLogger.log("maxAcceptableYOnContentArea.y : "+maxAcceptableYOnContentArea); + SaffronLogger.log("ME1.myContent.y : "+ME1.myContent.y); ME1.myContent.localHeight((maxAcceptableYOnContentArea.y-ME1.myContent.y)-contenth0); ME1.myContent.updateScrollheight(); } @@ -89,7 +89,7 @@ package { return ME1.popDispatcher ; } - public static function close() + public static function close():void { if(ME1) { diff --git a/PopMenu2.as b/PopMenu2.as index 5cc84eef..b5e4ec43 100644 --- a/PopMenu2.as +++ b/PopMenu2.as @@ -15,9 +15,9 @@ ME2 = this; } - public static function popUp(title:String='' , type:PopMenuTypes=null , content:PopMenuContent=null,closeOnTime:uint=0,onButtonSelects:Function = null) + public static function popUp(title:String='' , type:PopMenuTypes=null , content:PopMenuContent=null,closeOnTime:uint=0,onButtonSelects:Function = null):void { - //trace('POP 2 MENU OPENED '+Math.random()); + //SaffronLogger.log('POP 2 MENU OPENED '+Math.random()); ME2.popUp2(title, type, content,closeOnTime,onButtonSelects); } @@ -25,7 +25,7 @@ { return ME2.popDispatcher ; } - public static function close() + public static function close():void { if(ME2) ME2.close(); diff --git a/README.md b/README.md index bfb50584..34230840 100644 --- a/README.md +++ b/README.md @@ -13,19 +13,21 @@ SaffronCode is a collection of codes & libraries for producing powerful and flex ## You can be an app developer by using Adobe Animate & SaffronCode SDK -• You do not need programming knowledge to be a software developer, you can build a variety of software and brochures without having to write a line of code. You can easily prepare graphical and animated pages in Adobe Animate’s graphic environment for the production of mobile software. -• To use the extensive and diverse libraries in this set, you should only be familiar with Ecma Script 6 or Action Script so you can add calendars, lists, dynamic images and ... to your software. With a higher level of software knowledge, you can easily create a variety of software that connects to a lot of different web services without any hassle of managing Internet access and cache storage. +• You do not need programming knowledge to be a software developer, you can build a variety of software and brochures without having to write a line of code. You can easily prepare graphical and animated pages in Adobe Animate’s graphic environment for the production of mobile software.
+• To use the extensive and diverse libraries in this set, you should only be familiar with Ecma Script 6 or Action Script so you can add calendars, lists, dynamic images and ... to your software. With a higher level of software knowledge, you can easily create a variety of software that connects to a lot of different web services without any hassle of managing Internet access and cache storage.
• Do not worry about managing hardware resources. SaffronCode will optimize your software code to run on mobile devices by using GPU resources. ## How To Start? SaffronCode is adding to the Adobe Animate environment to build mobile applications output. To get ready the environment, follow these steps: -• Install the appropriate version of Adobe Animate -• Download SaffronCode SDK -• ASPack (Collection of key libraries) -• Flex and other general swc libraries (if you need soap web services) -• Download the latest version of the Air SDK -• JDK +• Install the appropriate version of Adobe Animate
+• Download SaffronCode SDK
+• Download our ASPack libraries to. you need these libraries to be able to use all features on SaffronCode.
+• Download ASPack
+• Flex and other general swc libraries (if you need soap web services)
+• Download the latest version of the Air SDK
+• JDK
+• Download the sample project here
## Contact Us diff --git a/SaffronLogger.as b/SaffronLogger.as new file mode 100644 index 00000000..7a326dc1 --- /dev/null +++ b/SaffronLogger.as @@ -0,0 +1,137 @@ +package +{ + import flash.filesystem.File; + import flash.filesystem.FileMode; + import flash.filesystem.FileStream; + import com.mteamapp.StringFunctions; + import diagrams.calender.MyShamsi; + import flash.utils.getTimer; + import flash.permissions.PermissionStatus; + import flash.events.PermissionEvent; + + public class SaffronLogger + { + private static var todayFile:File ; + + private static var todayFileStream:FileStream ; + + private static var _trace:Boolean = true ; + + private static var _logs:Boolean = false ; + + public static function traceIsActive():Boolean + { + return _trace; + } + + public static function deactiveTraces():void + { + _trace = false ; + } + + public static function activateTraces():void + { + _trace = true ; + } + + public static function activateLogs():void + { + _logs = true ; + } + + public static function deactiveLogs():void + { + _logs = false ; + } + + private static function init():void + { + if(todayFileStream!=null) + { + return ; + } + var shamsiDate:MyShamsi = MyShamsi.miladiToShamsi(new Date()); + var fileName:String = shamsiDate.fullYear + +StringFunctions.numToString(shamsiDate.month+1) + +StringFunctions.numToString(shamsiDate.date) + +StringFunctions.numToString(shamsiDate.hours) + +StringFunctions.numToString(shamsiDate.minutes) + +StringFunctions.numToString(shamsiDate.seconds)+".log"; + var projectFolderName:String = DevicePrefrence.appID; + if(DevicePrefrence.isIOS()) + { + todayFile = File.applicationStorageDirectory; + } + else + { + todayFile = File.userDirectory; + todayFile = todayFile.resolvePath(projectFolderName); + trace("create a folder : "+todayFile.nativePath+" > "+todayFile.exists); + if(!todayFile.exists) + { + todayFile.createDirectory(); + } + if(!todayFile.isDirectory) + { + todayFile = todayFile.parent ; + } + trace("todayFile : "+todayFile.nativePath); + } + todayFile = todayFile.resolvePath(fileName); + + if(todayFile.exists) + { + todayFile.deleteFile(); + } + + var _file:File = new File() ; + trace("File.permissionStatus : "+File.permissionStatus); + if (File.permissionStatus != PermissionStatus.GRANTED) + { + _file.addEventListener(PermissionEvent.PERMISSION_STATUS, + function(e:PermissionEvent):void { + if (e.status == PermissionStatus.GRANTED) + { + filePermissionGranted(); + } + else + { + trace("permission denied"); + } + } + ); + + trace("Ask user for permission"); + try { + _file.requestPermission(); + } catch(e:Error) + { + trace("another request is in progress"); + } + } + else + { + trace("File permission granted"); + filePermissionGranted(); + } + + function filePermissionGranted():void + { + trace("Log file located on "+todayFile.nativePath); + todayFileStream = new FileStream(); + todayFileStream.openAsync(todayFile,FileMode.WRITE); + // todayFileStream.writeShort(-2); + } + } + + public static function log(...str):void + { + if(_logs) + init(); + if(_trace) + trace.apply(null,str); + if(_logs && todayFileStream) + todayFileStream.writeUTFBytes("<>\n"+str.toString()+'\n'); + } + } +} \ No newline at end of file diff --git a/animation/Anim_Frame_Controller.as b/animation/Anim_Frame_Controller.as index 9e4a71c9..fa249893 100644 --- a/animation/Anim_Frame_Controller.as +++ b/animation/Anim_Frame_Controller.as @@ -57,7 +57,7 @@ protected function unLoad(event:Event):void { - trace("Animation for "+mc+" is removed"); + SaffronLogger.log("Animation for "+mc+" is removed"); mc.removeEventListener(Event.ENTER_FRAME,anim); mc.removeEventListener(Event.REMOVED_FROM_STAGE,unLoad); } diff --git a/animation/Anim_alpha_shine.as b/animation/Anim_alpha_shine.as index 7d49a6e6..81efa638 100644 --- a/animation/Anim_alpha_shine.as +++ b/animation/Anim_alpha_shine.as @@ -10,9 +10,11 @@ import flash.events.EventDispatcher; public class Anim_alpha_shine extends Sprite{ - var object:Object ; + private var object:Object ; - var I:Number ; + private var I:Number ; + + private var _paused:Boolean = false ; public function Anim_alpha_shine(displayObject:Object) { this.addEventListener(Event.ENTER_FRAME,animate); @@ -37,8 +39,19 @@ public class Anim_alpha_shine extends Sprite{ object.alpha = 1 ; } + public function pauseShine():void + { + _paused = true ; + } + + public function playShine():void + { + _paused = false ; + } + private function animate(e:Event):void { + if(_paused)return; object.alpha = 1-(Math.cos(I)+1)/4 ; I+=0.1; } diff --git a/animation/PixelComeInEffect.as b/animation/PixelComeInEffect.as index 1c60c8df..e6dc1bfb 100644 --- a/animation/PixelComeInEffect.as +++ b/animation/PixelComeInEffect.as @@ -123,7 +123,7 @@ package animation /**Remove object with effect*/ private function handleRemoveEffect(e:Event):void { - trace("Item removed"); + SaffronLogger.log("Item removed"); clearInterval(intervalId); this.removeEventListener(Event.REMOVED_FROM_STAGE,handleRemoveEffect); //Prevent saffron code to remove my bitmap @@ -140,7 +140,7 @@ package animation intervalId = setInterval(removeThemOneByOnePixel,pixelDelay); }catch(e) { - trace("Error : "+e); + SaffronLogger.log("Error : "+e); } } diff --git a/animation/SpriteSheetMovieClip.as b/animation/SpriteSheetMovieClip.as index 5c51e952..6755aa00 100644 --- a/animation/SpriteSheetMovieClip.as +++ b/animation/SpriteSheetMovieClip.as @@ -61,7 +61,7 @@ package animation for(var j:int = 0 ; j * if you pass true, it will show the page instantly*/ - public function goInternalPage(instantMove:Boolean=false) + public function goInternalPage(instantMove:Boolean=false):void { currentPage = frame_internal ; eventDispatched = false ; diff --git a/appManager/animatedPages/Shiner.as b/appManager/animatedPages/Shiner.as index 4d8eca82..b9e183c4 100644 --- a/appManager/animatedPages/Shiner.as +++ b/appManager/animatedPages/Shiner.as @@ -21,7 +21,7 @@ /**Update shine positions and animation*/ protected function updateShines(event:Event):void { - for(var i = 0 ; i>>>> '+pageClassType); + SaffronLogger.log("Menu type : "+currentPageData.menuType+' >>>>> '+pageClassType); if(pageClassType != null) @@ -86,11 +86,11 @@ package appManager.animatedPages.pageManager } catch(e) { - trace("Page is not generated : "+e); + SaffronLogger.log("Page is not generated : "+e); thisPageHasMenu = false ; return; } - trace("*** currentPage added to stage"); + SaffronLogger.log("*** currentPage added to stage"); this.addChild(currentMenu); /*if(currentPageData.scrollAble) @@ -111,17 +111,17 @@ package appManager.animatedPages.pageManager { if(currentMenu.hasOwnProperty('setUp')) { - trace("This menu can get values"); + SaffronLogger.log("This menu can get values"); (currentMenu as DisplayPageInterface).setUp(currentPageData); } else { - trace("Static menu calls"); + SaffronLogger.log("Static menu calls"); } } else { - trace("static application menu"); + SaffronLogger.log("static application menu"); } this.dispatchEvent(new MenuEvent(MenuEvent.MENU_READY,currentMenu,true)); @@ -237,7 +237,7 @@ package appManager.animatedPages.pageManager if(currentMenu!=null && !pageReadyDispatched) { pageReadyDispatched = true ; - trace("Dispatch page ready event"); + SaffronLogger.log("Dispatch page ready event"); currentMenu.dispatchEvent(new PageControllEvent(PageControllEvent.PAGE_ANIMATION_READY)); } } diff --git a/appManager/animatedPages/pageManager/MenuManager.as b/appManager/animatedPages/pageManager/MenuManager.as index 66b630a3..b7e87914 100644 --- a/appManager/animatedPages/pageManager/MenuManager.as +++ b/appManager/animatedPages/pageManager/MenuManager.as @@ -37,7 +37,7 @@ package appManager.animatedPages.pageManager /**change the page event*/ - public function setUp(newEvent:AppEventContent) + public function setUp(newEvent:AppEventContent):void { toEvent = newEvent ; if(toEvent==null) diff --git a/appManager/animatedPages/pageManager/PageContainer.as b/appManager/animatedPages/pageManager/PageContainer.as index 19dbacca..8ea5ff71 100644 --- a/appManager/animatedPages/pageManager/PageContainer.as +++ b/appManager/animatedPages/pageManager/PageContainer.as @@ -40,11 +40,11 @@ package appManager.animatedPages.pageManager stop(); } - public function setUp(myEvent:AppEvent=null) + public function setUp(myEvent:AppEvent=null):void { if(currentPage != null) { - trace("delete current page"); + SaffronLogger.log("delete current page"); this.removeChild(currentPage); if(scrollerMC) { @@ -66,13 +66,13 @@ package appManager.animatedPages.pageManager var pageClassType:Class ; pageClassType = Obj.generateClass(myEvent.myType); - trace("myEvent.myType : "+myEvent.myType); + SaffronLogger.log("myEvent.myType : "+myEvent.myType); if(pageClassType != null) { - /*try - {*/ + try + { currentPage = new pageClassType(); pageReadyDispatched = false ; var framesList:Array = currentPage.currentLabels; @@ -85,13 +85,15 @@ package appManager.animatedPages.pageManager middleFrame = currentPage.totalFrames ; } finishFrame = currentPage.totalFrames ; - /*} - catch(e) + } + catch(e:Error) { - trace("Page is not generated : "+e); + if(DevicePrefrence.isDebuggingMode()) + throw e ; + SaffronLogger.log("Page is not generated : "+e); return; - }*/ - trace("*** currentPage added to stage"); + } + SaffronLogger.log("*** currentPage added to stage"); this.addChild(currentPage); if(currentPageData.scrollAble) @@ -105,31 +107,41 @@ package appManager.animatedPages.pageManager } //auto size detector on horizontal >< position had bug, if you set it true, the scroll will lock anyway - scrollerMC = new ScrollMT(currentPage,AppWithContent.contentRect,targetArea,autoSizeDetector,false/*autoSizeDetector*/,currentPageData.scrollEffect,false); + scrollerMC = new ScrollMT(currentPage,Contents.config.pageRectXY0,targetArea,autoSizeDetector,false/*autoSizeDetector*/,currentPageData.scrollEffect,false); } if(myEvent is AppEventContent) { if(currentPage.hasOwnProperty('setUp')) { - trace("This page can get values"); + SaffronLogger.log("This page can get values"); try { (currentPage as DisplayPageInterface).setUp(currentPageData); } catch(e:Error) { - trace("**********************************************\n\n\n\n\n\n\n\nError happens :\n"+e.message+'\n'+e.getStackTrace()+"\n\n\n\n\n\n\n\n********************************************"); + if(DevicePrefrence.isDebuggingMode()) + { + throw e; + } + else + { + var errorText:String = "**********************************************\n\n\n\n\n\n\n\nError happens :\n"+e.message+'\n'+e.getStackTrace()+"\n\n\n\n\n\n\n\n********************************************" ; + SaffronLogger.log(errorText); + if(!SaffronLogger.traceIsActive()) + trace(errorText); + } } } else { - trace("Static page calls"); + SaffronLogger.log("Static page calls"); } } else { - trace("static application page"); + SaffronLogger.log("static application page"); } if(App.currentMenu!=null) @@ -254,7 +266,7 @@ package appManager.animatedPages.pageManager if(currentPage!=null && !pageReadyDispatched) { pageReadyDispatched = true ; - trace("Dispatch page ready event"); + SaffronLogger.log("Dispatch page ready event"); currentPage.dispatchEvent(new PageControllEvent(PageControllEvent.PAGE_ANIMATION_READY)); } } diff --git a/appManager/animatedPages/pageManager/PageManager.as b/appManager/animatedPages/pageManager/PageManager.as index 54e3de7e..79eacc58 100644 --- a/appManager/animatedPages/pageManager/PageManager.as +++ b/appManager/animatedPages/pageManager/PageManager.as @@ -37,6 +37,10 @@ package appManager.animatedPages.pageManager super(); pageContainer = Obj.findThisClass(PageContainer,this,true) as PageContainer; + if(pageContainer==null) + { + throw "You have to add appManager.animatedPages.pageManager.PageContainer in the PageManager movieClip"; + } this.stop(); //this.visible = false; @@ -45,7 +49,7 @@ package appManager.animatedPages.pageManager } /**change the page event*/ - public function setUp(newEvent:AppEvent) + public function setUp(newEvent:AppEvent):void { toEvent = newEvent ; } diff --git a/appManager/animatedPages/pageManager/TitleManager.as b/appManager/animatedPages/pageManager/TitleManager.as index e4cf57e0..2ee6d46d 100644 --- a/appManager/animatedPages/pageManager/TitleManager.as +++ b/appManager/animatedPages/pageManager/TitleManager.as @@ -8,6 +8,7 @@ import flash.display.MovieClip; import flash.events.Event; + import contents.alert.Alert; public class TitleManager extends MovieClip { @@ -37,11 +38,18 @@ this.stop(); //this.visible = false; - this.addEventListener(Event.ENTER_FRAME,anim); + Obj.addEventListener(this,Event.ENTER_FRAME,anim); + this.addEventListener(Event.REMOVED_FROM_STAGE,unLoad); + } + + private function unLoad(e:*):void + { + var myIndex:int = ME.indexOf(this); + ME.removeAt(myIndex); } /**change the page event*/ - public function setUp(newEvent:AppEvent,forceToRefresh:Boolean=false) + public function setUp(newEvent:AppEvent,forceToRefresh:Boolean=false):void { if(toEvent!=null) { @@ -56,8 +64,6 @@ protected function anim(event:Event):void { - - //Have to change like pageContainer if(toEvent.myType == AppEvent.home || toEvent.myID!=currentEvent.myID || toEvent.myType == AppEvent.refresh) { @@ -107,6 +113,7 @@ /**Set the title both for parags and titletexts*/ public function setTitle(text:String):void { + this.visible = text!=''; if(myTitle!=null) { if(myTitle.text != text) diff --git a/appManager/displayContent/SliderGallery.as b/appManager/displayContent/SliderGallery.as index e36d73e5..d232b078 100644 --- a/appManager/displayContent/SliderGallery.as +++ b/appManager/displayContent/SliderGallery.as @@ -159,9 +159,9 @@ override public function set height(value:Number):void { - trace("Old H was : "+H); + SaffronLogger.log("Old H was : "+H); H = value ; - trace("Nw H is : "+H); + SaffronLogger.log("Nw H is : "+H); if(myMask) { @@ -185,9 +185,9 @@ override public function set width(value:Number):void { - trace("Old W was : "+W); + SaffronLogger.log("Old W was : "+W); W = value ; - trace("Nw W is : "+W); + SaffronLogger.log("Nw W is : "+W); if(myMask) { @@ -221,6 +221,14 @@ } } + public function getCurrentSelectedImageObject():SliderImageItem + { + if(imagesList.length>getCurrentSelectedImage()) + return imagesList[getCurrentSelectedImage()]; + else + return null; + } + public function totalImages():uint { return _totalImages ; @@ -334,7 +342,7 @@ } else { - trace("No next image available"); + SaffronLogger.log("No next image available"); getImageUp().x = 0 ; } } @@ -346,7 +354,7 @@ } else { - //trace("No prev image available"); + //SaffronLogger.log("No prev image available"); getImageUp().x = 0 ; } } @@ -379,7 +387,7 @@ imageIndex += plusPages; } - //trace("♠♠○♠369♠♠ compate ImageIndex vs IgnoredList "+ignoredIndexes+" vs "+getCurrentSelectedImage()) + //SaffronLogger.log("♠♠○♠369♠♠ compate ImageIndex vs IgnoredList "+ignoredIndexes+" vs "+getCurrentSelectedImage()) if(ignoredIndexes.indexOf(getCurrentSelectedImage())!=-1) { if(nextPrevController>0) @@ -394,7 +402,7 @@ else nextPrevController = 0 ; - //trace("imageIndex : "+imageIndex); + //SaffronLogger.log("imageIndex : "+imageIndex); mustSwitch = false ; selectedImge = (selectedImge+1)%2 ; @@ -477,7 +485,7 @@ mouseDownTime = getTimer(); - trace("Start sliderGallery touch"); + SaffronLogger.log("Start sliderGallery touch"); stage.addEventListener(MouseEvent.MOUSE_MOVE,startSliding); stage.addEventListener(MouseEvent.MOUSE_UP,canselDragging); this.addEventListener(ScrollMTEvent.LOCK_SCROLL_TILL_MOUSE_UP,canselDragging); @@ -498,7 +506,7 @@ stage.removeEventListener(MouseEvent.MOUSE_UP,canselDragging); this.removeEventListener(ScrollMTEvent.LISTEN_TO_SCROLL,checkTheScrollerDirectionToCancel); - trace("speed : "+(speed)); + SaffronLogger.log("speed : "+(speed)); if(!RTL) { @@ -628,7 +636,7 @@ ignoreIndexList = [] ; } - public function setUp(images:Vector.,currentIndex:uint=0,animateTimer:uint = 10000,rightToLeft:Boolean=false,loopEnabled:Boolean=true,addSliderEffect:SliderBooletSetting=null):void + public function setUp(images:Vector.,currentIndex:uint=0,animateTimer:int = 10000,rightToLeft:Boolean=false,loopEnabled:Boolean=true,addSliderEffect:SliderBooletSetting=null):void { setIgnoreIndexes(); if(stage!=null) @@ -662,7 +670,7 @@ else { this.addEventListener(MouseEvent.CLICK,preventDefaultClick,false,1000); - animInterval = animateTimer ; + animInterval = animateTimer<0?10000:animateTimer ; } @@ -722,7 +730,7 @@ /**Open the previus question, call showExactIndex() function to open exact page*/ public function preve():void { - if(_lockPrev) + if(_lockPrev || _totalImages<=1) return ; setAnimation(); @@ -742,7 +750,7 @@ /**Open the next question, call showExactIndex() function to open exact page*/ public function next():void { - if(_lockNext) + if(_lockNext || _totalImages<=1) return; if(nextAvailable()) diff --git a/appManager/displayContent/SliderImageItem.as b/appManager/displayContent/SliderImageItem.as index 128a6625..714939b7 100644 --- a/appManager/displayContent/SliderImageItem.as +++ b/appManager/displayContent/SliderImageItem.as @@ -5,7 +5,7 @@ package appManager.displayContent public class SliderImageItem { /**This can be a bitmapData or url or ByteArray*/ - internal var image:* ; + public var image:* ; public var title:String ; public var titleColor:int; diff --git a/appManager/displayContentElemets/BoxImage.as b/appManager/displayContentElemets/BoxImage.as index 150a4da3..81213409 100644 --- a/appManager/displayContentElemets/BoxImage.as +++ b/appManager/displayContentElemets/BoxImage.as @@ -11,7 +11,7 @@ package appManager.displayContentElemets /**The difrence between ImageBox ans BoxImage is that ImageBox is load the image inside of the area but the BoxImage loads image Bigger than its area.*/ override public function setUp(imageURL:String, loadInThisArea:Boolean=true, imageW:Number=0, imageH:Number=0, X:Number=0, Y:Number=0, keepRatio:Boolean=true):* { - trace("Box Image calls : "+loadInThisArea) + SaffronLogger.log("Box Image calls : "+loadInThisArea) super.setUp(imageURL, false, imageW, imageH, X, Y); } } diff --git a/appManager/displayContentElemets/Image.as b/appManager/displayContentElemets/Image.as index 3cc78565..8e901f88 100644 --- a/appManager/displayContentElemets/Image.as +++ b/appManager/displayContentElemets/Image.as @@ -26,7 +26,7 @@ package appManager.displayContentElemets this.dispatchEvent(new ImageEvent(ImageEvent.IMAGE_SELECTED,URL)); } - public function setUp(imageURL:String,loadInThisArea:Boolean = false ,imageW:Number=0,imageH:Number=0,X:Number=0,Y:Number=0,keepRatio:Boolean=true) + public function setUp(imageURL:String,loadInThisArea:Boolean = false ,imageW:Number=0,imageH:Number=0,X:Number=0,Y:Number=0,keepRatio:Boolean=true):void { } } diff --git a/appManager/displayContentElemets/ImageBox.as b/appManager/displayContentElemets/ImageBox.as index 445b3e82..58e80598 100644 --- a/appManager/displayContentElemets/ImageBox.as +++ b/appManager/displayContentElemets/ImageBox.as @@ -54,8 +54,8 @@ override public function setUp(imageURL:String,loadInThisArea:Boolean = true ,imageW:Number=0,imageH:Number=0,X:Number=0,Y:Number=0,keepRatio:Boolean=true) { - trace("Image box calls"); - trace("load this image : "+imageURL+' > loadInThisArea: '+loadInThisArea); + SaffronLogger.log("Image box calls"); + SaffronLogger.log("load this image : "+imageURL+' > loadInThisArea: '+loadInThisArea); if(imageW==0) { diff --git a/appManager/displayContentElemets/LightImage.as b/appManager/displayContentElemets/LightImage.as index a97e7424..4939fe59 100644 --- a/appManager/displayContentElemets/LightImage.as +++ b/appManager/displayContentElemets/LightImage.as @@ -2,8 +2,6 @@ //appManager.displayContentElemets.LightImage { - import com.mteamapp.PerformanceTest; - import contents.alert.Alert; import flash.display.Bitmap; @@ -83,6 +81,8 @@ private static var watermarkBitmapData:BitmapData ; + + private var _watermarkBitmapDataForThis:BitmapData ; private var _watermark:Boolean = true ; @@ -95,6 +95,9 @@ //private var maximomImageLoadingDelay:Number = 8000 ; //private var minimomImageLoadingDelay:Number = 4000 ; + + private var remove_cash:Boolean = false ; + private var remove_file_target:String = null ; public function LightImage(BackColor:uint=0x000000,BackAlpha:Number=0) @@ -105,6 +108,11 @@ this.addEventListener(Event.REMOVED_FROM_STAGE,unLoad); } + + public function dontCashImage():void + { + remove_cash = true ; + } /**Change the icon size*/ public function changeSize(newWidth:Number=0,newHeight:Number=0):void @@ -160,7 +168,7 @@ } /**Second setting up the LightImage class*/ - public function setUp2(doAnimation:Boolean = true) + public function setUp2(doAnimation:Boolean = true):void { animated = doAnimation ; } @@ -168,6 +176,8 @@ /**You can show loaded image by this methode.*/ public function setUpBytes(imageBytes:ByteArray, loadInThisArea:Boolean=false, imageW:Number=0, imageH:Number=0, X:Number=0, Y:Number=0,copyBytes:Boolean=false,keepRatio:Boolean=true):void { + if(imageBytes==null) + return; clearLastByte(); if(copyBytes) { @@ -219,19 +229,19 @@ /**This class will resize the loaded image to its size to prevent gpu process and also it will crop the image to.
* pass -1 for each dimention to make the original value to use on that side*/ - override public function setUp(imageURL:String, loadInThisArea:Boolean=false, imageW:Number=0, imageH:Number=0, X:Number=0, Y:Number=0,keepRatio:Boolean=true):* + override public function setUp(imageURL:String, loadInThisArea:Boolean=false, imageW:Number=0, imageH:Number=0, X:Number=0, Y:Number=0,keepRatio:Boolean=true):void { - PerformanceTest.traceDelay(1); - //trace("Load this image : "+imageURL); + //PerformanceTest.traceDelay(1); + //SaffronLogger.log("Load this image : "+imageURL); if(URL!=null && URL == imageURL) { - trace("current image is same as old image on lightImage"); + SaffronLogger.log("current image is same as old image on lightImage"); this.dispatchEvent(new Event(Event.COMPLETE)); return ; } if(imageURL==null && loadedBytes==null && loadedBitmap==null) { - trace("No URL and no LoadedBytes defined yet"); + SaffronLogger.log("No URL and no LoadedBytes defined yet"); return ; } IsLoading = true ; @@ -278,7 +288,7 @@ LoadInThisArea = loadInThisArea ; if(this.name.indexOf(_full)!=-1) { - trace("Load in this area type changed because of its name"); + SaffronLogger.log("Load in this area type changed because of its name"); LoadInThisArea = true ; } @@ -290,7 +300,7 @@ { this.y=Y; } - PerformanceTest.traceDelay(2); + //PerformanceTest.traceDelay(2); if(this.stage!=null) { startWork(null); @@ -301,12 +311,12 @@ } this.scaleX = this.scaleY = 1 ; - trace("The imge W was "+W+" when you called to open image"); + SaffronLogger.log("The imge W was "+W+" when you called to open image"); } protected function startWork(event:Event=null):void { - //trace("Start to load"); + //SaffronLogger.log("Start to load"); /*if(CPUController.isSatUp && animated) { CPUController.eventDispatcher.addEventListener(CPUEvents.PERVECT_CPU,startLoading); @@ -325,7 +335,7 @@ /**This will make images to load*/ public function startLoading(e:*=null):void { - //PerformanceTest.traceDelay(3); + ////PerformanceTest.traceDelay(3); if(this.stage==null) return; clearTimeout(imageLoaderTimeOutId); @@ -356,9 +366,9 @@ protected function imageSaved(event:URLSaverEvent=null):void { wasLoadedBefor = event==null || event.wasLoadedBefor ; - PerformanceTest.traceDelay('image is loaded'); + //PerformanceTest.traceDelay('image is loaded'); //var loaderContext:LoaderContext = new LoaderContext(false,ApplicationDomain.currentDomain); - //trace("Load this image : "+event.offlineTarget); + //SaffronLogger.log("Load this image : "+event.offlineTarget); //loader = new Loader(); //loader.contentLoaderInfo.addEventListener(Event.COMPLETE,imageLoaded); //loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,imageNotFound); @@ -373,16 +383,16 @@ fileStreamLoader.addEventListener(Event.COMPLETE,fileLoaded); try { - trace("Try to load : "+event.offlineTarget); + SaffronLogger.log("Try to load : "+event.offlineTarget); - PerformanceTest.traceDelay('create target file'); + //PerformanceTest.traceDelay('create target file'); var targetFile:File = new File(event.offlineTarget) ; - PerformanceTest.traceDelay('Target file created'); + //PerformanceTest.traceDelay('Target file created'); if(targetFile.exists) { - PerformanceTest.traceDelay('open file async'); + //PerformanceTest.traceDelay('open file async'); fileStreamLoader.openAsync(targetFile,FileMode.READ); - PerformanceTest.traceDelay('async loaded'); + //PerformanceTest.traceDelay('async loaded'); } else{ throw "The file is not exists" ; @@ -390,11 +400,15 @@ } catch(e) { - trace("Light image async file loader errr : "+e); + SaffronLogger.log("Light image async file loader errr : "+e); fileStreamLoader.close(); fileStreamLoader = null ;*/ //Alert.show("event.offlineTarget : "+event.offlineTarget); - trace("**** event.offlineTarget on lightImage : "+event.offlineTarget); + SaffronLogger.log("**** event.offlineTarget on lightImage : "+event.offlineTarget); + if(remove_cash) + { + remove_file_target = event.offlineTarget ; + } WorkerFunctions.createBitmapFromByte(event.offlineTarget,imageLoaded,LoadInThisArea,W,H,keepImageRatio,blur); //loader.load(new URLRequest(),loaderContext); //} @@ -406,30 +420,30 @@ var tim:Number = getTimer(); WorkerFunctions.createBitmapFromByte(loadedBytes,imageLoaded,LoadInThisArea,W,H,keepImageRatio,blur); //loader.loadBytes(loadedBytes,loaderContext); - trace(">>> "+(getTimer()-tim)); + SaffronLogger.log(">>> "+(getTimer()-tim)); } } /*protected function fileLoaded(event:Event):void { - //trace("\t*\tImage loaded as file"); + //SaffronLogger.log("\t*\tImage loaded as file"); var loaderContext:LoaderContext = new LoaderContext(false,ApplicationDomain.currentDomain); var bytes:ByteArray = new ByteArray(); try { fileStreamLoader.readBytes(bytes); - PerformanceTest.traceDelay('file loaded. show the image'); + //PerformanceTest.traceDelay('file loaded. show the image'); var tim:Number = getTimer(); WorkerFunctions.createBitmapFromByte(bytes,imageLoaded,LoadInThisArea,W,H,keepImageRatio); //loader.loadBytes(bytes,loaderContext); - trace("*>>> "+(getTimer()-tim)); - PerformanceTest.traceDelay('image file showed'); + SaffronLogger.log("*>>> "+(getTimer()-tim)); + //PerformanceTest.traceDelay('image file showed'); fileStreamLoader.close(); bytes.clear(); } catch(e) { - trace("Light image loading local file error : "+e); + SaffronLogger.log("Light image loading local file error : "+e); } }*/ @@ -444,13 +458,13 @@ protected function imageLoaded(workerArray:Array=null):void { - PerformanceTest.traceDelay('image loader loaded the image'); + //PerformanceTest.traceDelay('image loader loaded the image'); clearTheBitmap(); var workerBitmap:BitmapData ; //var loadedContent:DisplayObject ; /*if(loader==null && loadedBitmap==null) { - trace("*************************why the loader is null???"+loader+' > '+event+' >> '+(event.target as LoaderInfo)+' >>> '+event.currentTarget); + SaffronLogger.log("*************************why the loader is null???"+loader+' > '+event+' >> '+(event.target as LoaderInfo)+' >>> '+event.currentTarget); loadedContent = (event.target as LoaderInfo).content; //return; }*/ @@ -471,9 +485,9 @@ } else if(workerArray!=null && workerArray is Array && workerArray.length>1 && (workerArray[0] is ByteArray)) { - trace("The image file is : "+workerArray[0].length); - trace("The image file W : "+workerArray[1]); - trace("The image file H : "+workerArray[2]); + SaffronLogger.log("The image file is : "+workerArray[0].length); + SaffronLogger.log("The image file W : "+workerArray[1]); + SaffronLogger.log("The image file H : "+workerArray[2]); (workerArray[0] as ByteArray).position = 0 ; workerBitmap = new BitmapData(workerArray[1],workerArray[2],true,0x00000000); workerBitmap.setPixels(workerBitmap.rect,workerArray[0]); @@ -493,31 +507,31 @@ }*/ if(newBitmap==null) { - trace("Image load faild on lightImage function imageLoaded"); + SaffronLogger.log("Image load faild on lightImage function imageLoaded"); return ; } if(workerBitmap==null) { var bitmapData:BitmapData = newBitmap.bitmapData ; //var newBitmapData:BitmapData ; - trace("The W is : "+W); - trace("The H is : "+H); + SaffronLogger.log("The W is : "+W); + SaffronLogger.log("The H is : "+H); if(W!=0 && H!=0) { - trace("Change image size to : "+W,H); + SaffronLogger.log("Change image size to : "+W,H); bitmapData = BitmapEffects.changeSize(bitmapData,W,H,keepImageRatio,LoadInThisArea); } else if(W!=0) { - //trace("• I whant to change the bitmap width to : "+W); - //trace("And the height will be "+bitmapData.height*(W/bitmapData.width)); + //SaffronLogger.log("• I whant to change the bitmap width to : "+W); + //SaffronLogger.log("And the height will be "+bitmapData.height*(W/bitmapData.width)); bitmapData = BitmapEffects.changeSize(bitmapData,W,bitmapData.height*(W/bitmapData.width),keepImageRatio,LoadInThisArea); H = bitmapData.height; } else if(H!=0) { - //trace("• I whant to change the bitmap height to : "+H); - //trace("And the width will be "+bitmapData.width*(H/bitmapData.height)); + //SaffronLogger.log("• I whant to change the bitmap height to : "+H); + //SaffronLogger.log("And the width will be "+bitmapData.width*(H/bitmapData.height)); bitmapData = BitmapEffects.changeSize(bitmapData,bitmapData.width*(H/bitmapData.height),H,keepImageRatio,LoadInThisArea); W = bitmapData.width; } @@ -556,6 +570,12 @@ bitmapData.draw(myWatermark); myWatermark.dispose(); } + if(_watermarkBitmapDataForThis!=null) + { + var myWatermark2:BitmapData = BitmapEffects.changeSize(_watermarkBitmapDataForThis,bitmapData.width,bitmapData.height,true,true,true); + bitmapData.draw(myWatermark2); + myWatermark2.dispose(); + } if(grayScaledImage) { @@ -573,18 +593,22 @@ if(acitvateAnimation && animated || (!wasLoadedBefor && animatedIfLoaded)) { this.alpha = 0 ; - //trace("make it come with animation : "+this); + //SaffronLogger.log("make it come with animation : "+this); AnimData.fadeIn(this,null,animateSpeed); } IsLoading = false; - PerformanceTest.traceDelay("Now image is ready to show"); + //PerformanceTest.traceDelay("Now image is ready to show"); this.dispatchEvent(new Event(Event.COMPLETE)); } protected function clearTheBitmap():void { - + if(remove_file_target!=null) + { + FileManager.deleteFile(new File(remove_file_target)); + remove_file_target = null ; + } if(newBitmap!=null) { if(newBitmap.bitmapData!=null) @@ -630,7 +654,7 @@ } catch(e) { - //trace("LightImage problem : "+e); + //SaffronLogger.log("LightImage problem : "+e); }*/ } @@ -640,6 +664,12 @@ DeviceImage.loadFile(onWatermarkLoaded,watermarkTarget) } + public function addWaterMark(watermarkBitmapData:BitmapData):void + { + + _watermarkBitmapDataForThis = watermarkBitmapData ; + } + private static function onWatermarkLoaded():void { watermarkBitmapData = DeviceImage.imageBitmapData ; diff --git a/appManager/displayContentElemets/TextParag.as b/appManager/displayContentElemets/TextParag.as index 57b735d6..3be2fb00 100644 --- a/appManager/displayContentElemets/TextParag.as +++ b/appManager/displayContentElemets/TextParag.as @@ -107,7 +107,7 @@ //Removed for debug //myTextTF.text = '' ; //Added for debug - //trace(myTextTF.getTextFormat().font+' added to textParag class') ; + //SaffronLogger.log(myTextTF.getTextFormat().font+' added to textParag class') ; fontSize0 = myTextTF.defaultTextFormat.size as uint ; @@ -118,7 +118,7 @@ { if(scrollMC==null) { - return myTextTF.height ; + return forScrollContainer.height ; } else { @@ -159,11 +159,6 @@ public function setUp(myText:String,isArabic:Boolean = true,align:Boolean=true,knownAsHTML:Boolean=false,activateLinks:Boolean=false,useNativeText:Boolean=false,addScroller:Boolean=true,generateLinksForURLs:Boolean=false,scrollEffect:Boolean=true,userBitmap:Boolean=true,VerticalAlign:Boolean=false,useCash:Boolean=false,captureResolution:uint=0,splitIfToLong:Boolean=false, textSplitter:String=null,imagesList:Array=null):void { - if(!addScroller && textSplitter==null && splitIfToLong==false) - { - textSplitter = '\n'; - } - if(textSplitter=='') { textSplitter = null ; @@ -228,13 +223,13 @@ if(useNativeText) { myTextTF.text = UnicodeStatic.KaafYe(myText) ; - trace("myTextTF.text : "+myTextTF.text); + SaffronLogger.log("myTextTF.text : "+myTextTF.text); nativeText = FarsiInputCorrection.setUp(myTextTF,null,true,true,false,true,false); - trace("Farsi input created for this text to make it native"); + SaffronLogger.log("Farsi input created for this text to make it native"); } else { - //trace("1 add parag on TextParag and its font is : "+myTextTF.defaultTextFormat.font+' added to textParag class') + //SaffronLogger.log("1 add parag on TextParag and its font is : "+myTextTF.defaultTextFormat.font+' added to textParag class') //TextPutter.onTextArea(myTextTF,myText,isArabic,true,true,1,align,knownAsHTML) ; //TextPutter.onTextArea(myTextTF,myText,isArabic,!activateLinks,false,0,align,knownAsHTML,-1); var verticalHeight:Number = 0 ; @@ -323,10 +318,10 @@ //Debug line ↓ //TextPutter.onTextArea(myTextTF,myText,isArabic,false,false,1,true) ; - // trace("2 add parag on TextParag and its font is : "+myTextTF.defaultTextFormat.font+' added to textParag class : '+myTextTF.text) - //trace("TextPutter.lastInfo_numLines : "+TextPutter.lastInfo_numLines); - //trace("!splitIfToLong) : "+(!splitIfToLong)); - //trace("addScroller : "+addScroller); + // SaffronLogger.log("2 add parag on TextParag and its font is : "+myTextTF.defaultTextFormat.font+' added to textParag class : '+myTextTF.text) + //SaffronLogger.log("TextPutter.lastInfo_numLines : "+TextPutter.lastInfo_numLines); + //SaffronLogger.log("!splitIfToLong) : "+(!splitIfToLong)); + //SaffronLogger.log("addScroller : "+addScroller); if( ( !splitIfToLong @@ -373,7 +368,7 @@ //Alert.show('matches'); var linkIsHere:String = String(links[0]).toLowerCase(); linkIsHere = linkIsHere.substring(linkIsHere.lastIndexOf('href=')+6,linkIsHere.length-1); - trace("Link is : "+linkIsHere); + SaffronLogger.log("Link is : "+linkIsHere); return linkIsHere ; } } @@ -426,9 +421,9 @@ public function increase(newFontSize:int,updateInterfaceInstantly:Boolean=false):void { var textFormat:TextFormat = myTextTF.defaultTextFormat ; - trace("Old text size : "+textFormat.size); + SaffronLogger.log("Old text size : "+textFormat.size); textFormat.size = Math.max(0,fontSize0+newFontSize); - trace("New text size : "+textFormat.size); + SaffronLogger.log("New text size : "+textFormat.size); myTextTF.setTextFormat(textFormat); myTextTF.defaultTextFormat = textFormat ; if(updateInterfaceInstantly) diff --git a/appManager/displayContentElemets/TitleText.as b/appManager/displayContentElemets/TitleText.as index f40900ab..15d725df 100644 --- a/appManager/displayContentElemets/TitleText.as +++ b/appManager/displayContentElemets/TitleText.as @@ -32,7 +32,7 @@ package appManager.displayContentElemets myText.text = ''; } - public function setUp(title:String,arabicText:Boolean = true,splitIfToLong:Boolean=false,resolution:uint=0,replaceWithBitmap:Boolean=true,dynamicWidth:Boolean=false) + public function setUp(title:String,arabicText:Boolean = true,splitIfToLong:Boolean=false,resolution:uint=0,replaceWithBitmap:Boolean=true,dynamicWidth:Boolean=false):void { this.title = title; this.arabicText = arabicText ; @@ -49,7 +49,7 @@ package appManager.displayContentElemets TextPutter.OnButton(myText,title,arabicText,replaceWithBitmap,true,false,resolution,splitIfToLong,dynamicWidth); } /**setup and split text by any car*/ - public function setUp2(title:String,arabicText:Boolean = true,splitIfToLong:Boolean=false,resolution:uint=0,replaceWithBitmap:Boolean=true,splitRange_p:int=0,car_p:String=',',direction_p:String=TitleText.RIGHT,reverse_p:Boolean=false) + public function setUp2(title:String,arabicText:Boolean = true,splitIfToLong:Boolean=false,resolution:uint=0,replaceWithBitmap:Boolean=true,splitRange_p:int=0,car_p:String=',',direction_p:String=TitleText.RIGHT,reverse_p:Boolean=false):void { if(splitRange_p>0) { @@ -83,7 +83,7 @@ package appManager.displayContentElemets public function color(colorNum:uint):void { - trace("The color is : "+colorNum); + SaffronLogger.log("The color is : "+colorNum); myText.textColor = colorNum ; } diff --git a/appManager/displayContentElemets/VersionTracer.as b/appManager/displayContentElemets/VersionTracer.as index cbee477b..27a10f0a 100644 --- a/appManager/displayContentElemets/VersionTracer.as +++ b/appManager/displayContentElemets/VersionTracer.as @@ -31,7 +31,7 @@ package appManager.displayContentElemets { if(this.stage!=null) { - intervalId = setInterval(updateVersionLabel,2000); + intervalId = setInterval(updateVersionLabel,10000); this.addEventListener(Event.REMOVED_FROM_STAGE,unLoad); } else diff --git a/appManager/displayObjects/EmailFeedback.as b/appManager/displayObjects/EmailFeedback.as index e6c19778..7bd17d40 100644 --- a/appManager/displayObjects/EmailFeedback.as +++ b/appManager/displayObjects/EmailFeedback.as @@ -21,7 +21,7 @@ package appManager.displayObjects public static function sendFeedbackTo(mailAdress:String,Subject:String="Feedback"):void { setUp(); - trace("devicePrefrence : "+devicePrefrence); + SaffronLogger.log("devicePrefrence : "+devicePrefrence); navigateToURL(new URLRequest("mailto:"+mailAdress+"?subject="+Subject+"&body="+devicePrefrence)); } } diff --git a/appManager/displayObjects/SwitchButtonAnimated.as b/appManager/displayObjects/SwitchButtonAnimated.as index c0b396b5..808100c4 100644 --- a/appManager/displayObjects/SwitchButtonAnimated.as +++ b/appManager/displayObjects/SwitchButtonAnimated.as @@ -11,6 +11,8 @@ { private var _status:Boolean = false ; + private var onChangeFunction:Function ; + public function SwitchButtonAnimated(status:Boolean = false) { _status = status ; @@ -23,6 +25,11 @@ this.addEventListener(Event.REMOVED_FROM_STAGE,unLoad); } + public function onChanged(func:Function):void + { + onChangeFunction = func ; + } + private function unLoad(e:Event):void { this.removeEventListener(MouseEvent.MOUSE_DOWN,switchMe); @@ -34,7 +41,8 @@ { _status = !_status ; this.dispatchEvent(new Event(Event.CHANGE)); - trace(_status); + SaffronLogger.log(_status); + if(onChangeFunction!=null)onChangeFunction(); } public function get status():Boolean @@ -50,6 +58,13 @@ } } + public function setInstantStaut(status:Boolean):void + { + _status = status; + if(status)this.gotoAndStop(this.totalFrames); + else this.gotoAndStop(1); + } + private function anim(event:Event):void { if(_status) diff --git a/appManager/event/AppEvent.as b/appManager/event/AppEvent.as index e4014f0c..3061bd5c 100644 --- a/appManager/event/AppEvent.as +++ b/appManager/event/AppEvent.as @@ -66,7 +66,7 @@ myID = pageID ; - //trace("AppEvent trace : "+pageType+" vs "+pageID); + //SaffronLogger.log("AppEvent trace : "+pageType+" vs "+pageID); super(eventType,true); } diff --git a/appManager/event/AppEventContent.as b/appManager/event/AppEventContent.as index fc6d7242..15af96e2 100644 --- a/appManager/event/AppEventContent.as +++ b/appManager/event/AppEventContent.as @@ -89,9 +89,9 @@ package appManager.event /**You can predect if back is availabe*/ public static function backAvailable():Boolean { - trace("backAvailable methode is moved from AppEventContent to History Class"); + SaffronLogger.log("backAvailable methode is moved from AppEventContent to History Class"); return History.backAvailable(); - /*//trace("history : "+JSON.stringify(history)); + /*//SaffronLogger.log("history : "+JSON.stringify(history)); //This situation will not ocure on any pages but home if(history!=null && ( history.length>1 )) { @@ -106,12 +106,12 @@ package appManager.event /**returns lastPageEvent*/ public static function lastPage():AppEventContent { - trace("lastPage methode is moved from AppEventContent to History Class"); + SaffronLogger.log("lastPage methode is moved from AppEventContent to History Class"); return History.lastPage(); - //trace("dispatch last page"); + //SaffronLogger.log("dispatch last page"); /*for(var i = 0 ; i> Expired and moved to Config class"); + SaffronLogger.log("AppWithContent.contentRect() >> Expired and moved to Config class"); var contentResizedRect:Rectangle = _contentRect.clone(); contentResizedRect.height+=StageManager.stageDelta.height ; contentResizedRect.width+=StageManager.stageDelta.width ; - trace("StageManager.stageDelta.height : "+StageManager.stageDelta.height); - trace("_contentRect : "+_contentRect+" vs "+contentResizedRect); + SaffronLogger.log("StageManager.stageDelta.height : "+StageManager.stageDelta.height); + SaffronLogger.log("_contentRect : "+_contentRect+" vs "+contentResizedRect); return contentResizedRect.clone(); } @@ -116,7 +123,7 @@ //Solving Back button on Android 28 DistriqtApplication.solveBackButton(); - stage.addEventListener(MouseEvent.MOUSE_DOWN, function(e):*{ + stage.addEventListener(MouseEvent.MOUSE_DOWN, function(e:*):*{ mouseClickCounter++; }) @@ -150,11 +157,11 @@ if(manageStageManager) { - trace("Contents.config.debugStageHeight : "+Contents.config.debugStageHeight); + SaffronLogger.log("Contents.config.debugStageHeight : "+Contents.config.debugStageHeight); StageManager.setUp(stage,Contents.config.debugStageWidth,Contents.config.debugStageHeight); StageManager.eventDispatcher.addEventListener(StageManagerEvent.STAGE_RESIZED,updateConfigRects); updateConfigRects(); - trace("**** : "+StageManager.stageRect); + SaffronLogger.log("**** : "+StageManager.stageRect); } if(activateBackSwap) @@ -171,7 +178,7 @@ homePageData.contentH = stage.stageHeight ; } _contentRect = new Rectangle(0,0,homePageData.contentW,homePageData.contentH); - trace("Content page rectangle is ( You can change this value by adding w and h attributes to the home.content value on data.xml : "+_contentRect); + SaffronLogger.log("Content page rectangle is ( You can change this value by adding w and h attributes to the home.content value on data.xml : "+_contentRect); this.addEventListener(PageControllEvent.PREVENT_PAGE_CHANGING,preventPageChanging); this.addEventListener(PageControllEvent.LET_PAGE_CHANGE,letThePreventedAppEventRelease); @@ -196,7 +203,7 @@ NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, URICalled); } - NativeApplication.nativeApplication.addEventListener(Event.DEACTIVATE,function(e){ + NativeApplication.nativeApplication.addEventListener(Event.DEACTIVATE,function(e:*):void{ SliderManager.hide(true); }) if(!DevicePrefrence.isAndroid() && appDescriptorString.indexOf("NSAllowsArbitraryLoads")==-1) @@ -258,7 +265,7 @@ private function noFocusedText(e:FarsiInputCorrectionEvent):void { - trace("Focused out"); + SaffronLogger.log("Focused out"); root.y = 0 ; if(stageMask!=null) { @@ -269,7 +276,7 @@ private function checkFocusedItem(e:FarsiInputCorrectionEvent):void { - trace("Event distatched"); + SaffronLogger.log("Event distatched"); var focucedTF:TextField = e.textField; var keyBoardHeight:Number = stage.softKeyboardRect.height ; //Debug line @@ -277,7 +284,7 @@ keyBoardHeight = 400 ; if(keyBoardHeight>0 && StageManager.isSatUp()) { - var extraHeight:Number = 100 ;//100 + var extraHeight:Number = changeKeyboardYPostionHeight ;//100 var stageScale:Number = stage.fullScreenWidth/stage.stageWidth ; keyBoardHeight = keyBoardHeight*stageScale+extraHeight*stageScale; @@ -299,12 +306,12 @@ (root as DisplayObjectContainer).addChild(stageMask); stageMask.y = StageManager.stageVisibleArea.bottom;//stage.stageHeight;//StageManager.stageVisibleArea.bottom; - /*trace("stageScale : "+stageScale); - trace("keyBoardHeight : "+keyBoardHeight); - trace("stageFullscreenH : "+stageFullscreenH); - trace("textFeildBottom : "+textFeildBottom); - trace("focucedTF.getBounds(root) : "+focucedTF.getBounds(root)); - trace("StageManager.stageDelta.height : "+StageManager.stageDelta.height);*/ + /*SaffronLogger.log("stageScale : "+stageScale); + SaffronLogger.log("keyBoardHeight : "+keyBoardHeight); + SaffronLogger.log("stageFullscreenH : "+stageFullscreenH); + SaffronLogger.log("textFeildBottom : "+textFeildBottom); + SaffronLogger.log("focucedTF.getBounds(root) : "+focucedTF.getBounds(root)); + SaffronLogger.log("StageManager.stageDelta.height : "+StageManager.stageDelta.height);*/ root.y = moveStageTo; } @@ -342,7 +349,7 @@ /**The application called with uri shcema*/ protected function URICalled(event:InvokeEvent):void { - trace("App is oppend from an other application : "+event.arguments); + SaffronLogger.log("App is oppend from an other application : "+event.arguments); } private function updateConfigRects(e:*=null):void @@ -357,7 +364,7 @@ preventorFunction = null ; preventorPage = null ; - var preventedEventCash:AppEvent = preventedEvent ; + var preventedEventCash:AppEvent = event.let_cashed_requested_page_activate?preventedEvent:null ; preventedEvent = null ; if(prventedPageWasLastPage) { @@ -365,14 +372,14 @@ } prventedPageWasLastPage = false ; - if(preventedEventCash!=null) + if(preventedEventCash!=null && !event.ignorelastCalledPage) { - trace("Prevented page event is released"); + SaffronLogger.log("Prevented page event is released"); managePages(preventedEventCash); } else { - trace("No AppEvent was prevented to be release"); + SaffronLogger.log("No AppEvent was prevented to be release"); } } @@ -380,7 +387,7 @@ protected function preventPageChanging(event:PageControllEvent):void { - trace("Permition sat"); + SaffronLogger.log("Permition sat"); preventorFunction = event.permitionReceiver ; preventorPage = event.preventerPage ; } @@ -392,7 +399,7 @@ preventedEvent = event ; if(permitionRequiredToChangePage()) { - trace("The page changing needs a permition"); + SaffronLogger.log("The page changing needs a permition"); if(preventorFunction.length>0) { preventorFunction(preventedEvent); @@ -403,7 +410,7 @@ } return true ; } - //trace("No permition needed : "+preventorFunction+' , '+preventorPage+' , '+preventorPage.stage) + //SaffronLogger.log("No permition needed : "+preventorFunction+' , '+preventorPage+' , '+preventorPage.stage) preventorFunction = null ; preventorPage = null ; preventedEvent = null ; @@ -434,7 +441,7 @@ if(event.myID == AppEvent.developer_static_pageid) { DevicePrefrence.createDownloadLink(); - trace("Open the developer page"); + SaffronLogger.log("Open the developer page"); if(PopMenu.isAvailable()) { var backButton:String = 'بازگشت'; @@ -456,8 +463,15 @@ var event2:AppEventContent = event as AppEventContent ; if(!event2.SkipHistory) { - trace("History changed"); + SaffronLogger.log("History changed"); History.pushHistory((event as AppEventContent).linkData); + + + } + + if(event2!=null) + { + logPageChange(event2.myID); } if((!DevicePrefrence.isItPC) && mouseClickCounter>0) @@ -468,6 +482,26 @@ return duplicatePageController ; } + + /**Save teh page ID to Analytic server */ + private function logPageChange(pageId:String):void + { + //GOODBY Saffron Logger... we will miss you + // if(pageLoggerRequest==null) + // { + // pageLoggerRequest = new URLRequest(Contents.config.version_controll_url); + // pageLoggerRequest.contentType = 'application/json'; + // pageLoggerRequest.method = URLRequestMethod.POST ; + // } + // pageLoggerRequest.data = JSON.stringify({AppId:DevicePrefrence.appID,PageName:pageId,Enter:true}) ; + // if(pageLoggerLoader==null) + // { + // pageLoggerLoader = new URLLoader(); + // pageLoggerLoader.addEventListener(IOErrorEvent.IO_ERROR,function():void{}) + // } + // pageLoggerLoader.load(pageLoggerRequest); + + } /**Contents are load now*/ protected function startApp():void @@ -476,16 +510,28 @@ playIntro(); if(!(skipAnimations || Contents.config.skipAnimations)) { - var versionContrllURL:String = Contents.config.version_controll_url ; - trace("Version controll : "+versionContrllURL); - var versionRequest:URLRequest = new URLRequest(versionContrllURL); - versionRequest.contentType = 'application/json'; - versionRequest.method = URLRequestMethod.POST ; - versionRequest.data = JSON.stringify({AppId:DevicePrefrence.appID}) ; - - VersionController.controllVersion(currentVersionIsOk,stopThisVersion,versionRequest,DevicePrefrence.appVersion,true); + controlCurrentVersion(); } } + + public static function checkVersion():void + { + showTheOptionalUpateWarning = true ; + ME.controlCurrentVersion(true); + } + + private function controlCurrentVersion(useOfflineVersion:Boolean=false):void + { + //GOODBY Saffron analytics, we will miss you + // var versionContrllURL:String = Contents.config.version_controll_url ; + // SaffronLogger.log("Version controll : "+versionContrllURL); + // var versionRequest:URLRequest = new URLRequest(versionContrllURL); + // versionRequest.contentType = 'application/json'; + // versionRequest.method = URLRequestMethod.POST ; + // versionRequest.data = JSON.stringify({AppId:DevicePrefrence.appID}) ; + + // VersionController.controllVersion(currentVersionIsOk,stopThisVersion,versionRequest,DevicePrefrence.appVersion,true,useOfflineVersion); + } /**The application version is ok*/ private function currentVersionIsOk():void @@ -502,34 +548,33 @@ Alert.show(str3); } stage.removeEventListener(MouseEvent.CLICK,openDownloadLink); - trace("*** The versions are ok ***"); + SaffronLogger.log("*** The versions are ok ***"); playIntro(); } /**The application is expired*/ - private function stopThisVersion(theHint:String,appURL:String):void + private function stopThisVersion(theHint:String,appURL:String,forceToUpdate:Boolean=true):void { - if(isExpired(theHint,appURL)) + if(forceToUpdate) { - trace("Switch to the download url instantly"); + Alert.show(theHint.replace("ID","ID ("+DevicePrefrence.appID+")")); + SaffronLogger.log("Switch to the download url instantly"); resetIntro(); stage.removeEventListener(MouseEvent.CLICK,openDownloadLink); stage.addEventListener(MouseEvent.CLICK,openDownloadLink); setTimeout(openDownloadLink,3000); } + else if(showTheOptionalUpateWarning) + { + Alert.show(theHint.replace("ID","ID ("+DevicePrefrence.appID+")")); + showTheOptionalUpateWarning = false ; + setTimeout(openDownloadLink,3000); + } } private function openDownloadLink(event:MouseEvent=null):void { navigateToURL(new URLRequest(VersionController.appStoreURL)); } - - - /**Returns true if there is no listener on this function, so the application have to redirect to the server*/ - protected function isExpired(hint:String,link:String):Boolean - { - Alert.show(hint.replace("ID","ID ("+DevicePrefrence.appID+")")); - return true ; - } } } \ No newline at end of file diff --git a/combobox/comboboxStatic/ComboBoxStaticHeader.as b/combobox/comboboxStatic/ComboBoxStaticHeader.as index f0592b81..2599cba6 100644 --- a/combobox/comboboxStatic/ComboBoxStaticHeader.as +++ b/combobox/comboboxStatic/ComboBoxStaticHeader.as @@ -47,8 +47,8 @@ ComboBoxStaticManager.evt.dispatchEvent(new ComboBoxStaticEvents(ComboBoxStaticEvents.CLOSE,null,_id)) ComboBoxStaticManager.setStatus(_id,_status) } - //trace("FocusDirection : "+FocusDirection); - //trace("(stage as Stage).focus : "+(stage as Stage).focus); + //SaffronLogger.log("FocusDirection : "+FocusDirection); + //SaffronLogger.log("(stage as Stage).focus : "+(stage as Stage).focus); } } public function setTitle():void @@ -116,7 +116,7 @@ } catch(e:Error) { - trace('no fond '+Lable_p) + SaffronLogger.log('no fond '+Lable_p) } } } diff --git a/combobox/comboboxStatic/ComboBoxStaticMenu.as b/combobox/comboboxStatic/ComboBoxStaticMenu.as index c92cc21c..668dac10 100644 --- a/combobox/comboboxStatic/ComboBoxStaticMenu.as +++ b/combobox/comboboxStatic/ComboBoxStaticMenu.as @@ -52,7 +52,7 @@ package combobox.comboboxStatic gotoAndPlay(ComboBoxStaticEvents.OPEN) this.mouseChildren = true this.mouseEnabled = true - trace('opeeeeeeeeeeeeeeeeeeeeeeeen :','_comboBoxId :',_comboBoxId,'event.comboBoxId :',event.comboBoxId) + SaffronLogger.log('opeeeeeeeeeeeeeeeeeeeeeeeen :','_comboBoxId :',_comboBoxId,'event.comboBoxId :',event.comboBoxId) } } protected function select(Id_p:String,ComboBoxId_p:String,linkData_p:LinkData=null):void diff --git a/combobox/comboboxStatic/ComboBoxStaticScrolMenu.as b/combobox/comboboxStatic/ComboBoxStaticScrolMenu.as index a2d73aea..1a8aa249 100644 --- a/combobox/comboboxStatic/ComboBoxStaticScrolMenu.as +++ b/combobox/comboboxStatic/ComboBoxStaticScrolMenu.as @@ -27,7 +27,7 @@ package combobox.comboboxStatic } else if(_comboBoxDynamicItem==null) { - trace("Dynamic manu class shouldent be empty of linkItem!"); + SaffronLogger.log("Dynamic manu class shouldent be empty of linkItem!"); } // setScrol() diff --git a/componentStatic/ComboBoxSender.as b/componentStatic/ComboBoxSender.as index 4f5b5641..b05517fe 100644 --- a/componentStatic/ComboBoxSender.as +++ b/componentStatic/ComboBoxSender.as @@ -58,7 +58,7 @@ var _bottonArray:Array = _data.buttonArray(); for(var i:int=0;i<_bottonArray.length;i++) { - trace('this.name :',this.name,'=', getObj(this.name),'_bottonArray[i].id :',_bottonArray[i].id) + SaffronLogger.log('this.name :',this.name,'=', getObj(this.name),'_bottonArray[i].id :',_bottonArray[i].id) var _defaultValue:PopButtonData; if(getObj(this.name) == _bottonArray[i].id) { @@ -105,7 +105,7 @@ public function openListPopUp(data:Array=null,ID:String=null):void { - trace('_data.title() :',_data.title()); + SaffronLogger.log('_data.title() :',_data.title()); if(_title!=null) { Hints.selector(_title,'',_data.buttonArray(),selector,null,1,2,onBackFun); @@ -130,11 +130,11 @@ } protected function selected():void { - trace('select item'); + SaffronLogger.log('select item'); } protected function Server_Error(event:Event):void { - trace('combobox server erroe'); + SaffronLogger.log('combobox server erroe'); } diff --git a/componentStatic/ComponentManager.as b/componentStatic/ComponentManager.as index 48d3d823..d891307e 100644 --- a/componentStatic/ComponentManager.as +++ b/componentStatic/ComponentManager.as @@ -83,7 +83,7 @@ package componentStatic { return _obj[_page][Name_p]; } - trace('Component Manager is not setup '); + SaffronLogger.log('Component Manager is not setup '); return null; } public function obj():* @@ -101,7 +101,7 @@ package componentStatic { /*for(var i:int=0;i = new Vector.() for(var index in errorObj) { - //trace(index+':::::::::::::::::::::::::::::::::::',errorObj[index]) + //SaffronLogger.log(index+':::::::::::::::::::::::::::::::::::',errorObj[index]) if(errorObj[index]!=noErrorId) { var item:ErrorItem = new ErrorItem() @@ -112,12 +112,12 @@ package componentStatic private function ignore(Index_p:String):Boolean { var value:Boolean = ignoreList.indexOf(Index_p)>-1 - //trace('index name :',Index_p,' value :',value) + //SaffronLogger.log('index name :',Index_p,' value :',value) return value } public function chekError(CatcherObject_p:Object,Name_p:String,Type_p:String):Boolean { - //trace('chek errorrrrrrrrrrrrrrrrrrrrrrr :',Name_p) + //SaffronLogger.log('chek errorrrrrrrrrrrrrrrrrrrrrrr :',Name_p) errorObj[Name_p] = noErrorId if(CatcherObject_p==null || String(CatcherObject_p[Name_p])=='' || CatcherObject_p[Name_p]==null || CatcherObject_p[Name_p]==undefined ) { diff --git a/componentStatic/GPS.as b/componentStatic/GPS.as index ff940b4c..677618d5 100644 --- a/componentStatic/GPS.as +++ b/componentStatic/GPS.as @@ -77,7 +77,7 @@ package componentStatic { clearTimeout(_idTimeOut) _idTimeOut = setTimeout(showMap,2000) - trace('time out') + SaffronLogger.log('time out') } } diff --git a/componentStatic/TextBoxSenderByTitle.as b/componentStatic/TextBoxSenderByTitle.as index acf0b3bb..17a387e9 100644 --- a/componentStatic/TextBoxSenderByTitle.as +++ b/componentStatic/TextBoxSenderByTitle.as @@ -29,7 +29,7 @@ package componentStatic { value = getObj(this.name) } - trace('value :',value) + SaffronLogger.log('value :',value) if(title!=null && (value==null|| value=='')) { setDefaultPass(title) diff --git a/contents/Config.as b/contents/Config.as index 1c9f8635..b822c17a 100644 --- a/contents/Config.as +++ b/contents/Config.as @@ -48,7 +48,7 @@ public function Config() { - trace("Config starts"); + SaffronLogger.log("Config starts"); version_controll_url = "" ; var list:Array = [104,115,114,109,111,53,41,40,107,88,92,91,102,98,96,84,95,83,83,96,80,86,24,76,87,84,21,70,84,76,17,49,82,78,72,66,63,79,77,8,78,60,72,72,61,66,64,52,63,61,66,63,59,55]; for(var i:int = 0 ; i * if your application is supporting multilanguages, you have to use language.xml standart near the content.xml file. and also * you have to set application stage here for the Language class to help it to find added elements to stage.*/ - public static function setUp(OnLoaded:Function=null,supportsMultiLanguage:Boolean=false,autoConvertFontsAndContentTextsByLanguage:Boolean=true,stage:Stage=null,loadConfigFile:Boolean=false) + public static function setUp(OnLoaded:Function=null,supportsMultiLanguage:Boolean=false,autoConvertFontsAndContentTextsByLanguage:Boolean=true,stage:Stage=null,loadConfigFile:Boolean=false):void { onLoaded = OnLoaded ; @@ -101,7 +94,7 @@ package contents langEnabled = supportsMultiLanguage ; autoLangUpdate = supportsMultiLanguage && autoConvertFontsAndContentTextsByLanguage ; - //trace("autoLangUpdate : "+autoLangUpdate); + //SaffronLogger.log("autoLangUpdate : "+autoLangUpdate); myStage = stage ; @@ -125,7 +118,7 @@ package contents } /**This function will controll the langEnabled, so be sure that you are calling it after langEnabled set*/ - private static function loadLang() + private static function loadLang():void { if(langEnabled) { @@ -139,20 +132,20 @@ package contents } /**Load the xml file now*/ - private static function loadXML() + private static function loadXML():void { - //trace("1. debug time : "+getTimer()); + //SaffronLogger.log("1. debug time : "+getTimer()); /*var fileLoader:FileStream = new FileStream(); var fileTarger:File = File.applicationDirectory.resolvePath(dataFile); fileLoader.open(fileTarger,FileMode.READ);*/ var loadedFile:String = TextFile.load(File.applicationDirectory.resolvePath(dataFile)); - //trace("2. debug time : "+getTimer()); + //SaffronLogger.log("2. debug time : "+getTimer()); xmlLoaded(null,loadedFile); } /**xml file loaded*/ - private static function xmlLoaded(e:Event,myInstantData:String='') + private static function xmlLoaded(e:Event,myInstantData:String=''):void { if(myInstantData!='') { @@ -167,12 +160,12 @@ package contents //Dynamic pages will lost in this mode pages = new Vector.(); - for(var i = 0 ; i(); - for(var i = 0 ; i + /**this will returns page data based on input id
* IT WILL GET CLONE FROM THE FIRST PAGE. SO YOU CAN EDIT RENURNED PAGES. * dontUseLanguage balue will prevent this function to converting texts from language.xml clas*/ public static function getPage(pageID:String,dontUseLanguage:Boolean=false):PageData { - //trace('1- '+getTimer()); + //SaffronLogger.log('1- '+getTimer()); if(blockedPagesForSanction!=null && blockedPagesForSanction.indexOf(pageID)!=-1) { - trace("This user cannot see this page!!!!!!!!!!!!!!"); + SaffronLogger.log("This user cannot see this page!!!!!!!!!!!!!!"); return new PageData(); } if(pages==null) { - trace("You have to set Contents first"); + SaffronLogger.log("You have to set Contents first"); return new PageData(); } if(isDebug) { - trace("Debug mode. Warning: Debug mode will remove all pages that added dynamicaly like News nad webGalleries!"); + SaffronLogger.log("Debug mode. Warning: Debug mode will remove all pages that added dynamicaly like News nad webGalleries!"); loadLang(); loadXML(); } - //trace('2- '+getTimer()); + //SaffronLogger.log('2- '+getTimer()); var foundedPage:PageData = new PageData(); - for(var i = 0 ; i0) { history.pop(); @@ -32,7 +32,7 @@ } else { - //trace("♠ split : "+currentLink.level+' , '+history.length+' - '+currentLink.level); + //SaffronLogger.log("♠ split : "+currentLink.level+' , '+history.length+' - '+currentLink.level); history.splice(currentLink.level/*-1*/,Math.max(history.length-currentLink.level/*+1*/,0)); history.push(currentLink); } @@ -59,7 +59,7 @@ /**You can predect if back is availabe*/ public static function backAvailable():Boolean { - //trace("history : "+JSON.stringify(history)); + //SaffronLogger.log("history : "+JSON.stringify(history)); //This situation will not ocure on any pages but home if(history!=null && ( history.length>1 /*|| (history.length>0 && history[0].id == home)*/)) { @@ -86,10 +86,10 @@ /**returns lastPageEvent*/ public static function lastPage():AppEventContent { - //trace("dispatch last page"); + //SaffronLogger.log("dispatch last page"); /*for(var i = 0 ; i * New Level defined: -2 means this page had to replace with current page on history*/ @@ -32,7 +33,7 @@ if(linkXML!=null) { - //trace('each link is : '+linkXML.@level+' - '+linkXML.@name); + //SaffronLogger.log('each link is : '+linkXML.@level+' - '+linkXML.@name); name = linkXML.@name; w = Number(linkXML.@w); h = Number(linkXML.@h); @@ -40,6 +41,7 @@ y = Number(linkXML.@y); id = linkXML.@id ; iconURL = linkXML.@icon ; + iconURL2 = linkXML.@icon2 ; if(String(linkXML.@level) == '') { level = -1 ; @@ -48,14 +50,14 @@ { level = uint(linkXML.@level); } - //trace('level is : '+level); + //SaffronLogger.log('level is : '+level); if(linkXML!='') { if(linkXML.link != undefined) { - for(var i = 0 ; i(); if(inputXML==null) { - //trace('page data is not generated'); + //SaffronLogger.log('page data is not generated'); return ; } id = inputXML.@id ; musicURL = inputXML.music ; - //trace("inputXML.music.@v : "+inputXML.music.@v); + //SaffronLogger.log("inputXML.music.@v : "+inputXML.music.@v); if( inputXML.music.@v != inputXML.music.@no_attribute_like_this ) { musicVolume = Number(inputXML.music.@v); @@ -102,7 +102,7 @@ package contents musicVolume = Math.min(Math.max(0,musicVolume),1); } } - //trace("musicVolume : "+musicVolume); + //SaffronLogger.log("musicVolume : "+musicVolume); type = inputXML.type ; menuType = inputXML.menutype ; title = inputXML.title ; @@ -146,8 +146,8 @@ package contents contentH = Number(inputXML.content.@h); } - ///trace("inputXML.content.@w : "+inputXML.content.@w); - ///trace("inputXML.content.@h : "+inputXML.content.@h); + ///SaffronLogger.log("inputXML.content.@w : "+inputXML.content.@w); + ///SaffronLogger.log("inputXML.content.@h : "+inputXML.content.@h); var newLink:LinkData ; var newImg:ImageData ; @@ -224,7 +224,7 @@ package contents */ public function export():XML { - var xml = XML(''); + var xml:XML = XML(''); xml.@id = id; xml.music = musicURL ; @@ -256,7 +256,7 @@ package contents //var link1Node:XML = XML(''); //xml.links = new XML(); - for(var i = 0 ; i + * uses-permission android:name="android.permission.VIBRATE" * @param duration */ public static function vibrate(duration:uint=1000):void @@ -46,7 +46,7 @@ package contents.alert setUp(); if(VibrationDistriqt.isSupported()) { - trace("Distriqt vibratin is supported"); + SaffronLogger.log("Distriqt vibratin is supported"); VibrationDistriqt.vibrate(duration); } else if(DevicePrefrence.isAndroid()) @@ -56,7 +56,7 @@ package contents.alert } /** * You need vibration permission: - * + * uses-permission android:name="android.permission.VIBRATE" * @param duration */ public static function vibrateDynamic(patternArray:Array):void @@ -64,7 +64,7 @@ package contents.alert setUp(); if(VibrationDistriqt.isSupported()) { - trace("Distriqt vibratin is supported"); + SaffronLogger.log("Distriqt vibratin is supported"); VibrationDistriqt.vibrateDynamic(patternArray); } if(DevicePrefrence.isAndroid()) @@ -75,19 +75,19 @@ package contents.alert /** * You need vibration permission: - * + * uses-permission android:name="android.permission.VIBRATE" * @param duration */ public static function vibratePuls():void { if(VibrationDistriqt.isSupported()) { - trace("Distriqt supported") + SaffronLogger.log("Distriqt supported") VibrationDistriqt.puls(); } else if(DevicePrefrence.isAndroid()) { - trace("NO! Distriqt") + SaffronLogger.log("NO! Distriqt") vibrate(30); } } diff --git a/contents/alert/SaffronLogger.as b/contents/alert/SaffronLogger.as deleted file mode 100644 index b8c0772b..00000000 --- a/contents/alert/SaffronLogger.as +++ /dev/null @@ -1,43 +0,0 @@ -package contents.alert -{ - import flash.filesystem.File; - import flash.filesystem.FileMode; - import flash.filesystem.FileStream; - - public class SaffronLogger - { - private static var todayFile:File ; - - private static var todayFileStream:FileStream ; - - private static function init():void - { - if(todayFile!=null) - { - return ; - } - var fileName:String = "SaffronCodeLog"+new Date().time+".txt"; - if(DevicePrefrence.isIOS()) - { - todayFile = File.applicationStorageDirectory.resolvePath(fileName); - } - else - { - todayFile = File.userDirectory.resolvePath(fileName); - } - if(todayFile.exists) - { - todayFile.deleteFile(); - } - Alert.show("Log file located on "+todayFile.nativePath); - todayFileStream = new FileStream(); - todayFileStream.openAsync(todayFile,FileMode.WRITE); - } - - public static function log(str:*):void - { - init(); - todayFileStream.writeUTFBytes(str+'\n\n'); - } - } -} \ No newline at end of file diff --git a/contents/contentUpdate/ContentUpdateFromSameXML.as b/contents/contentUpdate/ContentUpdateFromSameXML.as index bf1444a7..f91eea60 100644 --- a/contents/contentUpdate/ContentUpdateFromSameXML.as +++ b/contents/contentUpdate/ContentUpdateFromSameXML.as @@ -55,14 +55,14 @@ package contents.contentUpdate } else { - trace("activate version contro first on ContentUpdateFromSameXML"); + SaffronLogger.log("activate version contro first on ContentUpdateFromSameXML"); } } /**download the main xml file*/ private static function startDownloadMain() { - trace('try to load : '+xmlURL.url); + SaffronLogger.log('try to load : '+xmlURL.url); //stati download version if exists mainLoader = new URLLoader(); mainLoader.addEventListener(Event.COMPLETE,downloadComplete); @@ -73,14 +73,14 @@ package contents.contentUpdate /**url is not exists*/ private static function downloadFaild(e:IOErrorEvent) { - trace("downloading are not successfull"); + SaffronLogger.log("downloading are not successfull"); failds(); } private static function downloadComplete(e:Event) { //save downloaded file - trace('file is loaded'); + SaffronLogger.log('file is loaded'); try { loadedXML = new XML(mainLoader.data); @@ -112,7 +112,7 @@ package contents.contentUpdate try { var storedXML:XML = XML(xmlString); - trace("loaded contents length : "+storedXML.page.length()); + SaffronLogger.log("loaded contents length : "+storedXML.page.length()); for(var j = 0 ; j):void + { + var lastLinks:Vector. = new Vector.() ; + if(myPageData.links1.length>0) + { + for(var i:int = links.length-1 ; i>=0 ; i--) + { + lastLinks.unshift(myPageData.links1.pop()); + myPageData.links1.unshift(links[i]); + } + update(myPageData); + addLink(lastLinks); + } + else + { + addLink(links); + } + } + + public function addLinkToFirs(link:LinkData):void + { + var lastLink:LinkData = null ; + if(myPageData.links1.length>0) + { + lastLink = myPageData.links1.pop(); + myPageData.links1.unshift(link); + update(myPageData); + if(lastLink!=null) + { + var linkList:Vector. = new Vector.(); + linkList.push(lastLink); + addLink(linkList); + } + } + else + { + var linkList2:Vector. = new Vector.(); + linkList2.push(link); + addLink(linkList2); + } + } /**Update created linkItems with same model of pageData*/ public function update(pageData:PageData):void { if(myPageData==null || myPageData.links1.length != pageData.links1.length) { - trace("**** Update function changed to setUp function ****"); + SaffronLogger.log("**** Update function changed to setUp function ****"); setUp(pageData); return ; } @@ -531,14 +636,19 @@ package contents.displayPages if(linksInterfaceStorage[i].stage!=null) { linksInterfaceStorage[i].setUp(myPageData.links1[i]); - if(linksInterfaceStorage[i].myLinkData==null) - linksInterfaceStorage[i].myLinkData = myPageData.links1[i] ; + //if(linksInterfaceStorage[i].myLinkData==null) + linksInterfaceStorage[i].myLinkData = myPageData.links1[i] ; } else { linksInterfaceStorage[i].myLinkData = myPageData.links1[i]; } } + + if(revertedY) + { + updateLinksPosition(); + } } /**You can pass an display elemet to show at the top of your list. You have to call setUp() function to make it work*/ @@ -547,8 +657,32 @@ package contents.displayPages firstItem = firstElement ; } - /**You can pass the first element on the list to this functiom. it will show it on the top of your list*/ + /**You can pass an display elemet to show at the top of your list. You have to call setUp() function to make it work*/ + public function addLastDisplayElemntForTheList(lastElement:DisplayObject=null):void + { + lastItem = lastElement ; + } + + public function setUpOrUpdate(pageData:PageData):void + { + if(myPageData!=null && myPageData.links1.length==pageData.links1.length) + { + update(pageData); + } + else + { + setUpFromScratch(pageData); + } + } + public function setUp(pageData:PageData):void + { + //setUpOrUpdate(pageData);//Some old projects cannot take this + setUpFromScratch(pageData); + } + + /**You can pass the first element on the list to this functiom. it will show it on the top of your list*/ + public function setUpFromScratch(pageData:PageData):void { saveLastPosition(); //new functions @@ -566,27 +700,47 @@ package contents.displayPages firstItemIndex = -1 ; lastItemIndex = 0 ; - //trace("current page data is : "+pageData.export()); - this.removeChildren(); - myPageData = pageData; - linksContainer = new Sprite(); - if(firstItem!=null) + //SaffronLogger.log("current page data is : "+pageData.export()); + if(linksContainer==null) { - linksContainer.addChild(firstItem); - firstItem.x = firstItem.y = 0 ; - if(revertedY) - { - firstItem.y = -firstItem.height ; - } - if(revertedX) + linksContainer = new Sprite(); + } + if(firstItem==null && lastItem==null) + { + this.removeChildren(); + linksContainer.removeChildren(); + } + else + { + Obj.removeAllChildBut(this,[linksContainer,linksSensor]); + Obj.removeAllChildBut(linksContainer,[firstItem,lastItem]); + + if(firstItem!=null) { - firstItem.x = -firstItem.width ; + if(firstItem.parent!=linksContainer) + { + linksContainer.addChild(firstItem); + } + firstItem.x = firstItem.y = 0 ; + if(revertedY) + { + firstItem.y = -firstItem.height ; + } + if(revertedX) + { + firstItem.x = -firstItem.width ; + } } + } + myPageData = pageData; + if(firstItem!=null) + { + } if(pageData.links1.length == 0 && noLinksMC!=null) { this.addChild(noLinksMC); - linksSensor = new Sprite(); + linksSensor = lastItem==null?new Sprite():lastItem as Sprite; } else { @@ -602,7 +756,7 @@ package contents.displayPages if(linksContainer!=null && myPageData!=null && myPageData.id!='') { - if(myPageData.id!='') + if(myPageData.id!='' && myPageData.id!=null) { if(horizontalMenu) { @@ -616,9 +770,9 @@ package contents.displayPages } } - private function createLinks() + private function createLinks():void { - trace("Creat links"); + SaffronLogger.log("Creat links"); lastGeneratedLinkIndes = 0 ; /*Bellow movieClips are allready removed by removeAllChildren() function by setUp function. if(linkScroller!=null) @@ -665,15 +819,24 @@ package contents.displayPages this.addChild(linksContainer); linksContainer.addChild(buttonsContainer); - - linksSensor = new Sprite(); + if(linksSensor==null) + { + linksSensor = lastItem==null?new Sprite():lastItem as Sprite; + } if(!horizontalMenu) { linksSensor.y = (firstItem==null)?myDeltaY0:firstItem.height+myDeltaY0 ; } else { - linksSensor.x = (firstItem==null)?myDeltaX0:firstItem.width+myDeltaX0 ; + if(!revertedX) + { + linksSensor.x = (firstItem==null)?myDeltaX0:firstItem.width+myDeltaX0 ; + } + else + { + linksSensor.x = (firstItem==null)?myDeltaX0:firstItem.x-myDeltaX0 ; + } } linksSensor.graphics.beginFill(0xff0000,linkSensorDebug); var stepSize:Number = 0 ; @@ -683,7 +846,8 @@ package contents.displayPages { stepSize = sampleLink.height+deltaY ; } - linksSensor.graphics.drawRect(0,0,areaRect.width*MenuDirectionX,linkSensorHeight*MenuDirectionY); + if(lastItem==null) + linksSensor.graphics.drawRect(0,0,areaRect.width*MenuDirectionX,linkSensorHeight*MenuDirectionY); } else { @@ -691,12 +855,17 @@ package contents.displayPages { stepSize = sampleLink.width+deltaX ; } - linksSensor.graphics.drawRect(0,0,linkSensorHeight*MenuDirectionX,areaRect.height*MenuDirectionY); + if(lastItem==null) + linksSensor.graphics.drawRect(0,0,linkSensorHeight*MenuDirectionX,areaRect.height*MenuDirectionY); + } + if(lastItem==null) + { + linksSensor.mouseChildren = false ; + linksSensor.mouseEnabled = false ; } - linksSensor.mouseChildren = false ; - linksSensor.mouseEnabled = false ; - linksContainer.addChild(linksSensor); + if(linksSensor.parent!=linksContainer) + linksContainer.addChild(linksSensor); /*if(myPageData.id!='' && scrollPosesObject[myPageData.id]!=null) { @@ -705,8 +874,8 @@ package contents.displayPages controllSensor(); if(!dynamicHeight) { - trace("linksContainer : "+linksContainer.getBounds(stage)); - trace("areaRect : "+areaRect); + SaffronLogger.log("linksContainer : "+linksContainer.getBounds(stage)); + SaffronLogger.log("areaRect : "+areaRect); linkScroller = new ScrollMT(linksContainer,areaRect,/*areaRect*/null,!horizontalMenu,horizontalMenu,acceptAnimation&&(!revertedX && !revertedY),revertedY,revertedX,stepSize,forseScrollEffect,fadeTheScroller); @@ -857,7 +1026,7 @@ package contents.displayPages public function addLink(listOfLinks:Vector.):void { addingLinksOver = false ; - trace("extra links are : "+listOfLinks.length); + SaffronLogger.log("extra links are : "+listOfLinks.length); myPageData.links1 = myPageData.links1.concat(listOfLinks); this.addEventListener(Event.ENTER_FRAME,controllSensor); @@ -876,7 +1045,7 @@ package contents.displayPages return myPageData.links1.length ; } - private function unLoad(ev:Event=null) + private function unLoad(ev:Event=null):void { if(myStage!=null) { @@ -893,7 +1062,7 @@ package contents.displayPages this.dispatchEvent(new Event(RELOAD_REQUIRED)); } - private function controllSensor(ev:Event=null) + private function controllSensor(ev:Event=null):void { if(reloaderMC) { @@ -979,7 +1148,7 @@ package contents.displayPages showOrHideLinkItem(visibleItem,i); } - //trace("****************************** it takes : "+(getTimer()-tim)); + //SaffronLogger.log("****************************** it takes : "+(getTimer()-tim)); }*/ //Control inside links or out side links ↓ @@ -1028,7 +1197,7 @@ package contents.displayPages lastItemIndex++; } //Control inside links or out side links ↑ - //trace("firstItemIndex,lastItemIndex : "+firstItemIndex,lastItemIndex); + //SaffronLogger.log("firstItemIndex,lastItemIndex : "+firstItemIndex,lastItemIndex); } @@ -1070,7 +1239,7 @@ package contents.displayPages ) ) { - trace("Request more link"); + SaffronLogger.log("Request more link"); var ifTherIs:Boolean = creatOneLink(); if(ifTherIs) { @@ -1078,7 +1247,8 @@ package contents.displayPages //Call this recursive function after preloader is invisible if(linksSensor.parent==null) { - linksContainer.addChild(linksSensor); + if(linksSensor.parent!=linksContainer) + linksContainer.addChild(linksSensor); } controllSensor(); @@ -1162,7 +1332,7 @@ package contents.displayPages { if(showThempRemovedLink(visibleItem)) { - trace("Backed link : "+linkIndex); + SaffronLogger.log("Backed link : "+linkIndex); } return true ; }else /*if( @@ -1173,7 +1343,7 @@ package contents.displayPages { if(thempRemoveLink(visibleItem)) { - trace("1 RemovedLink : "+(linkIndex)); + SaffronLogger.log("1 RemovedLink : "+(linkIndex)); } } return false ; @@ -1189,9 +1359,9 @@ package contents.displayPages revertedByMovieclipUI && ( - visibleItem.x+linksContainer.x+visibleItem.width>=visibleItem.width*-visibleArea-areaRect.width + visibleItem.x+linksContainer.x+visibleItem.width>-2*areaRect.width && - visibleItem.x=visibleItem.width*-visibleArea + visibleItem.x+linksContainer.x<=areaRect.width*2 && - visibleItem.x+linksContainer.x-areaRect.width ) ) ) @@ -1211,16 +1381,16 @@ package contents.displayPages !revertedX && ( - visibleItem.x+linksContainer.x+visibleItem.width>=visibleItem.width*-visibleArea + visibleItem.x+linksContainer.x+visibleItem.width>=-areaRect.width && - visibleItem.x+linksContainer.xlinkIndex?linksInterfaceStorage[linkIndex].y:linksContainer.y+Math.floor(linkIndex/iconsPerLine)*linkItemHeight(); linkBottom = linkY+linkItemHeight(); - trace("* linkY : "+linkY); - trace("* linkBottom : "+linkBottom); - trace("* areaRect : "+areaRect); - trace("* linksContainer.y : "+linksContainer.y); + SaffronLogger.log("* linkY : "+linkY); + SaffronLogger.log("* linkBottom : "+linkBottom); + SaffronLogger.log("* areaRect : "+areaRect); + SaffronLogger.log("* linksContainer.y : "+linksContainer.y); if(linkYareaRect.top-areaRect.height*2) { return true ; @@ -1354,8 +1533,8 @@ package contents.displayPages if(lastGeneratedLinkIndes0) { - linksInterfaceStorage[0].x = linksInterfaceStorage[0].width*-1+myDeltaX0; + if(firstItem==null) + linksInterfaceStorage[0].x = linksInterfaceStorage[0].width*-1+myDeltaX0; + else + linksInterfaceStorage[0].x = firstItem.x-linksInterfaceStorage[0].width-myDeltaX0; } } else @@ -1420,11 +1602,25 @@ package contents.displayPages { if(MenuDirectionX>0) { - linksInterfaceStorage[i].x = linksInterfaceStorage[i-1].x+(linksInterfaceStorage[i-1].width+myDeltaX); + if(i%iconsPerLine==0) + { + linksInterfaceStorage[i].x = linksInterfaceStorage[i-1].x+(linksInterfaceStorage[i-1].width+myDeltaX); + } + else + { + linksInterfaceStorage[i].x = linksInterfaceStorage[Math.floor(i/iconsPerLine)*iconsPerLine].x ; + } } else { - linksInterfaceStorage[i].x = linksInterfaceStorage[i-1].x-(linksInterfaceStorage[i].width+myDeltaX); + if(i%iconsPerLine==0) + { + linksInterfaceStorage[i].x = linksInterfaceStorage[i-1].x-(linksInterfaceStorage[i].width+myDeltaX); + } + else + { + linksInterfaceStorage[i].x = linksInterfaceStorage[Math.floor(i/iconsPerLine)*iconsPerLine].x ; + } } } else @@ -1442,7 +1638,14 @@ package contents.displayPages } else { - linksInterfaceStorage[i].y = linksInterfaceStorage[i-1].y-(linksInterfaceStorage[i].height+myDeltaY); + if(i%iconsPerLine==0) + { + linksInterfaceStorage[i].y = linksInterfaceStorage[i-1].y-(linksInterfaceStorage[i].height+myDeltaY); + } + else + { + linksInterfaceStorage[i].y = linksInterfaceStorage[Math.floor(i/iconsPerLine)*iconsPerLine].y ; + } } } } @@ -1473,12 +1676,12 @@ package contents.displayPages } else { - //trace("************************** >>>>>>>>>>>>>>> "+index); + //SaffronLogger.log("************************** >>>>>>>>>>>>>>> "+index); linksSensor.y = linksInterfaceStorage[index].y-myDeltaY; } } } - //trace("linksSensor : "+linksSensor.y+' MenuDirectionY : '+MenuDirectionY); + //SaffronLogger.log("linksSensor : "+linksSensor.y+' MenuDirectionY : '+MenuDirectionY); updateDynamicLinsBackGround(); } @@ -1548,7 +1751,7 @@ package contents.displayPages linksSensor.y = newLink.y+(newLink.height+myDeltaY) ; } } - //trace(" linksSensor.y : "+linksSensor.y) ; + //SaffronLogger.log(" linksSensor.y : "+linksSensor.y) ; } else { diff --git a/contents/displayPages/DynamicPage.as b/contents/displayPages/DynamicPage.as index d08bb7e7..e26b5db8 100644 --- a/contents/displayPages/DynamicPage.as +++ b/contents/displayPages/DynamicPage.as @@ -97,7 +97,7 @@ package contents.displayPages { scrollAbleObject.addChild(textContainer); } - //trace("scrollAbleObject.x : "+scrollAbleObject.x); + //SaffronLogger.log("scrollAbleObject.x : "+scrollAbleObject.x); scrollAbleObject.graphics.clear(); @@ -147,7 +147,7 @@ package contents.displayPages { align = true ; } - //trace("align : "+align+' from : '+currentPageData.contentAlign) + //SaffronLogger.log("align : "+align+' from : '+currentPageData.contentAlign) var pageContent:String = currentPageData.content ; if(activateHTMLLink) { @@ -159,11 +159,11 @@ package contents.displayPages } TextPutter.onTextArea(textTF,pageContent,true,!activateHTMLLink,true,1,align); } - //trace("Number of imates : "+currentPageData.images.length); + //SaffronLogger.log("Number of imates : "+currentPageData.images.length); for(var i = 0 ; i1) @@ -235,11 +235,11 @@ public function imSelected(event:MouseEvent=null):void { - trace("Im selected"); - trace("myLinkData : "+myLinkData); - trace("Xn : "+Xn); - trace("X0"+X0); - trace("Math.abs(this.x-X0)"+Math.abs(this.x-X0)); + SaffronLogger.log("Im selected"); + SaffronLogger.log("myLinkData : "+myLinkData); + SaffronLogger.log("Xn : "+Xn); + SaffronLogger.log("X0"+X0); + SaffronLogger.log("Math.abs(this.x-X0)"+Math.abs(this.x-X0)); if( myLinkData!=null && @@ -278,7 +278,7 @@ } else { - //trace("Dispatch linkData"); + //SaffronLogger.log("Dispatch linkData"); this.dispatchEvent(new AppEventContent(myLinkData)); } diff --git a/contents/displayPages/LinkItemButtons.as b/contents/displayPages/LinkItemButtons.as index 72925931..71cf616d 100644 --- a/contents/displayPages/LinkItemButtons.as +++ b/contents/displayPages/LinkItemButtons.as @@ -42,11 +42,11 @@ package contents.displayPages myLinkData = linkData ; } - internal function setAnimate(precent:Number):void + public function setAnimate(precent:Number):void { precent = Math.max(-1,Math.min(1,precent)); visibleFrame = Math.floor(Math.min(1,Math.abs(precent))*(this.totalFrames-1))+1; - //trace("*precent : "+precent+' : '+visibleFrame); + //SaffronLogger.log("*precent : "+precent+' : '+visibleFrame); } } } \ No newline at end of file diff --git a/contents/displayPages/ParagPage.as b/contents/displayPages/ParagPage.as index cdb18f80..e447270e 100644 --- a/contents/displayPages/ParagPage.as +++ b/contents/displayPages/ParagPage.as @@ -29,7 +29,7 @@ package contents.displayPages this.addEventListener(MouseEvent.MOUSE_DOWN,showMousePose); function showMousePose(e:MouseEvent):void { - trace(this.mouseY); + SaffronLogger.log(this.mouseY); }*/ if(activateHTMLlink) @@ -48,7 +48,7 @@ package contents.displayPages paragH = textTF.textHeight; textTF.appendText('\n-'); paragH = textTF.textHeight-paragH ; - trace("paragH is : "+paragH); + SaffronLogger.log("paragH is : "+paragH); textTF.text = ''; var imageW:Number = maskRect.width; @@ -60,8 +60,8 @@ package contents.displayPages //samplePagedata.contentY = maskRect.y; samplePagedata.contentW = maskRect.width; - trace("samplePagedata.contentW : "+samplePagedata.contentW); - trace("maskRect.width : "+maskRect.width); + SaffronLogger.log("samplePagedata.contentW : "+samplePagedata.contentW); + SaffronLogger.log("maskRect.width : "+maskRect.width); if(alighn) { samplePagedata.contentAlign = '1'; @@ -77,7 +77,7 @@ package contents.displayPages var contentsString:String = '' ; - //trace("ImageH : "+imageH+' vs ParagH : '+paragH+' : '+(imageH/paragH)); + //SaffronLogger.log("ImageH : "+imageH+' vs ParagH : '+paragH+' : '+(imageH/paragH)); var imageParagEnters:String = ''; var paragNumber:uint = Math.ceil((imageH/paragH)); @@ -85,7 +85,7 @@ package contents.displayPages var singleEnter:String = ' \n'; for(i = 0 ; i '+contentsString.length); + //SaffronLogger.log("Enters added to content : "+contentsString+' > '+contentsString.length); } else if(i!=0) { @@ -129,21 +129,21 @@ package contents.displayPages //textY+=paragH; /*while(textY check string : '+(result.data[0][field_value]=='null')); + //SaffronLogger.log('result on query is : '+(result.data[0][field_value]==null)+' > check string : '+(result.data[0][field_value]=='null')); var res:String = result.data[0][field_value] ; if(res == 'null') { @@ -180,7 +180,7 @@ package contents.fileSystem } else { - trace('saved Data is too old'); + SaffronLogger.log('saved Data is too old'); return null ; } } @@ -206,7 +206,7 @@ package contents.fileSystem return null ; } - //trace("it have to send query to db to detect the data"); + //SaffronLogger.log("it have to send query to db to detect the data"); query.text = "select "+field_value+" from "+tableName+" where "+field_id+" == '"+id+"'"; try @@ -219,7 +219,7 @@ package contents.fileSystem } else { - //trace('result on query is : '+(result.data[0][field_value]==null)+' > check string : '+(result.data[0][field_value]=='null')); + //SaffronLogger.log('result on query is : '+(result.data[0][field_value]==null)+' > check string : '+(result.data[0][field_value]=='null')); var res:String = result.data[0][field_value] ; if(res == 'null') { @@ -246,10 +246,10 @@ package contents.fileSystem } else { - //trace('result on query is : '+(result.data[0][field_value]==null)+' > check string : '+(result.data[0][field_value]=='null')); + //SaffronLogger.log('result on query is : '+(result.data[0][field_value]==null)+' > check string : '+(result.data[0][field_value]=='null')); for(var i = 0 ; i '+(targ as DisplayObject).getBounds(myStage)); - //trace('some thing added : '+targ.parent.name); + //SaffronLogger.log('some thing added : '+targ+' > '+(targ as DisplayObject).getBounds(myStage)); + //SaffronLogger.log('some thing added : '+targ.parent.name); if(targ is MovieClip) { if(addedItems.indexOf(targ)==-1) @@ -323,7 +327,7 @@ { if(addedItems.indexOf(targ)==-1) { - //trace("Manage this text : "+(targ as TextField).getBounds(myStage)+' : '+(targ as TextField).text); + //SaffronLogger.log("Manage this text : "+(targ as TextField).getBounds(myStage)+' : '+(targ as TextField).text); //var tf:TextFormat = (targ as TextField).defaultTextFormat ; //Upgraded line ↓ var tf:TextFormat = TextManager.addThis(targ as TextField).format ; @@ -334,16 +338,16 @@ { ///Add this later var lastSize:Object = myDatas[targ]; - //trace('last size is : '+lastSize); + //SaffronLogger.log('last size is : '+lastSize); if(lastSize == null) { lastSize = myDatas[targ] = tf.size ; } else { - //trace('object founds'); + //SaffronLogger.log('object founds'); } - //trace('font size increased'); + //SaffronLogger.log('font size increased'); tf.size = lastSize+increasedSize; TextField(targ).height+=increasedHeight; TextField(targ).y-=increasedHeight/2; @@ -351,18 +355,18 @@ var direction:String = tf.align ; var font:String = tf.font.toLocaleLowerCase(); var bold:String = String(tf.bold) ; - //trace("And its font name is : "+font); - for(var i = 0 ; i>> '+(xmlFontName == font)+' && '+(xmlBoldState == String(bold) )); + //SaffronLogger.log("xmlFontName == font && xmlBoldState == String(bold) : "+xmlFontName+' == '+font+' && '+xmlBoldState+' == '+String(bold)+' >>> '+(xmlFontName == font)+' && '+(xmlBoldState == String(bold) )); if(xmlFontName == font && xmlBoldState == String(bold) ) { - //trace("So i have to change its font"); + //SaffronLogger.log("So i have to change its font"); if(isArabic && direction == TextFormatAlign.LEFT) { tf.align = TextFormatAlign.RIGHT; @@ -387,14 +391,14 @@ //(targ as TextField).defaultTextFormat = tf ; //(targ as TextField).setTextFormat(tf) ; (targ as TextField).embedFonts = true ; - //trace("Font changed"); + //SaffronLogger.log("Font changed"); } } } addedItems.push(targ); //New Function to controll posible bugs. - //trace("*** required font is : "+tf.font+' > '+(targ as TextField).text); + //SaffronLogger.log("*** required font is : "+tf.font+' > '+(targ as TextField).text); var removeText:Boolean = false ; if((targ as TextField).text=='') { @@ -407,7 +411,7 @@ { (targ as TextField).text = '' ; } - //trace("*** final font is : "+(targ as TextField).defaultTextFormat.font+' > '+(targ as TextField).text); + //SaffronLogger.log("*** final font is : "+(targ as TextField).defaultTextFormat.font+' > '+(targ as TextField).text); (targ as DisplayObject).dispatchEvent(new Event(EVENT_TEXT_RESIZED)); } } diff --git a/contents/multiLanguage/SmartObject.as b/contents/multiLanguage/SmartObject.as index 14074aad..3755f8cf 100644 --- a/contents/multiLanguage/SmartObject.as +++ b/contents/multiLanguage/SmartObject.as @@ -44,8 +44,8 @@ package contents.multiLanguage { compilerValuesFile = new File(_____compilerValuesLocation); } - //trace("compilerValuesFile : "+compilerValuesFile.url); - //trace("compilerValuesFile is exists? :"+compilerValuesFile.exists); + //SaffronLogger.log("compilerValuesFile : "+compilerValuesFile.url); + //SaffronLogger.log("compilerValuesFile is exists? :"+compilerValuesFile.exists); if(_____compilerValuesLocation!=null && compilerValuesFile!=null && compilerValuesFile.exists) { /*compilerValsAre = ''; @@ -53,7 +53,7 @@ package contents.multiLanguage { compilerValsAre+='public var '+i+':String ;\n'; }*/ - //trace("compilerValsAre is : "+$compilerValsAre); + //SaffronLogger.log("compilerValsAre is : "+$compilerValsAre); TextFile.save(compilerValuesFile,_____compilerValsAre); } diff --git a/contents/multiLanguage/TextManager.as b/contents/multiLanguage/TextManager.as index ec7def28..8cea39ea 100644 --- a/contents/multiLanguage/TextManager.as +++ b/contents/multiLanguage/TextManager.as @@ -21,7 +21,7 @@ package contents.multiLanguage { var f:TextFormat = _format ; var copiedFormat:TextFormat = new TextFormat(f.font,f.size,f.color,f.bold,f.italic,f.underline,f.url,f.target,f.align,f.leftMargin,f.rightMargin,f.indent,f.leading); - //trace("Format copied : "+copiedFormat.font); + //SaffronLogger.log("Format copied : "+copiedFormat.font); return copiedFormat ; } @@ -30,7 +30,7 @@ package contents.multiLanguage var I:int = texts.indexOf(tf); if(I==-1) { - //trace("******** This is a new text"); + //SaffronLogger.log("******** This is a new text"); tf.addEventListener(Event.REMOVED_FROM_STAGE,removeThisText); var f:TextFormat = tf.defaultTextFormat ; @@ -41,7 +41,7 @@ package contents.multiLanguage } else { - //trace("******** This text is old"); + //SaffronLogger.log("******** This text is old"); _format = TextManagers[I].format ; } } @@ -53,7 +53,7 @@ package contents.multiLanguage var I:int = texts.indexOf(tf); if(I!=-1) { - trace("Some fonts removed form stage now"); + SaffronLogger.log("Some fonts removed form stage now"); texts.splice(I,1); TextManagers.splice(I,1); } diff --git a/contents/rollingList/RollingItem.as b/contents/rollingList/RollingItem.as index bf9c5b52..c5340bd9 100644 --- a/contents/rollingList/RollingItem.as +++ b/contents/rollingList/RollingItem.as @@ -40,7 +40,7 @@ package contents.rollingList { if(myLinkData!=null) { - trace("Dispatch event"); + SaffronLogger.log("Dispatch event"); this.dispatchEvent(new AppEventContent(myLinkData)); } } diff --git a/contents/rollingList/RollingList.as b/contents/rollingList/RollingList.as index cff38b57..23e6f80a 100644 --- a/contents/rollingList/RollingList.as +++ b/contents/rollingList/RollingList.as @@ -111,7 +111,7 @@ package contents.rollingList protected function preventPageChange(event:Event):void { - trace("Im selected"); + SaffronLogger.log("Im selected"); event.stopImmediatePropagation(); var selectedItem:RollingItem = event.target as RollingItem ; if(selectedItem == null) @@ -228,7 +228,7 @@ package contents.rollingList /**Selected item changed*/ private function dispatchChangeEvent():void { - trace("Changed : "+lastSelectedItem); + SaffronLogger.log("Changed : "+lastSelectedItem); this.dispatchEvent(new Event(Event.CHANGE)); this.dispatchEvent(new AppEventContent(myPageDataLink[lastSelectedItem])); } @@ -289,7 +289,7 @@ package contents.rollingList { var newLinkAdded:Boolean = false ; var requiredLinkY:Number ; - //trace('bottomOfList : '+bottomOfList+' , topOfList : '+topOfList); + //SaffronLogger.log('bottomOfList : '+bottomOfList+' , topOfList : '+topOfList); if(bottomOfList>=0) { if(bottomOfList = new Vector. for each(var value:uint in obj) diff --git a/dataManager/SavedDatas.as b/dataManager/SavedDatas.as index 92ecbbce..eff47810 100644 --- a/dataManager/SavedDatas.as +++ b/dataManager/SavedDatas.as @@ -60,11 +60,11 @@ package dataManager { query.text = "create table "+tableName+" ("+field_id+" VARCHAR(1) , "+field_value+" VARCHAR(1))"; query.execute(); - trace('table is creats'); + SaffronLogger.log('table is creats'); } catch(e) { - trace('table was created'); + SaffronLogger.log('table was created'); } } } @@ -74,14 +74,14 @@ package dataManager public static function save(id:String,data:String):void { setUp(); - //trace("save this data : "+data); + //SaffronLogger.log("save this data : "+data); //hint : if data is nul , it will cause to skip this function ,at the bigining of the app job , all temporaryObject variables are null if(data!= null && temporaryObject[id] == data) { - //trace("temporaryObject[id] is : "+temporaryObject[id]); + //SaffronLogger.log("temporaryObject[id] is : "+temporaryObject[id]); return ; } - //trace("save this data2 : "+temporaryObject[id]); + //SaffronLogger.log("save this data2 : "+temporaryObject[id]); temporaryObject[id] = data ; sql.begin(); query.text = "delete from "+tableName+" where "+field_id+" == '"+id+"'" ; @@ -95,7 +95,7 @@ package dataManager { query.execute(); sql.commit(); - //trace(data+" saved"); + //SaffronLogger.log(data+" saved"); } catch(e) { @@ -115,7 +115,7 @@ package dataManager return check; } - //trace("it have to send query to db to detect the data"); + //SaffronLogger.log("it have to send query to db to detect the data"); query.text = "select "+field_value+" from "+tableName+" where "+field_id+" == '"+id+"'"; try @@ -128,7 +128,7 @@ package dataManager } else { - //trace('result on query is : '+(result.data[0][field_value]==null)+' > check string : '+(result.data[0][field_value]=='null')); + //SaffronLogger.log('result on query is : '+(result.data[0][field_value]==null)+' > check string : '+(result.data[0][field_value]=='null')); var res:String = result.data[0][field_value] ; if(res == 'null') { diff --git a/dataManager/SavedDatas2.as b/dataManager/SavedDatas2.as index dae53606..3823db59 100644 --- a/dataManager/SavedDatas2.as +++ b/dataManager/SavedDatas2.as @@ -67,10 +67,10 @@ } /**Change the table name for this special user*/ - public static function setTableName(tableNameTitle:String='') + public static function setTableName(tableNameTitle:String=''):void { tableName = tableBaseName+tableNameTitle; - trace("new table name is : "+tableName); + SaffronLogger.log("new table name is : "+tableName); setUp(); } @@ -78,7 +78,7 @@ - public static function setUp(checkTable:Boolean = false) + public static function setUp(checkTable:Boolean = false):void { var needToUpdate:Boolean = false ; if(sql == null) @@ -122,7 +122,7 @@ { updatedFile.copyTo(sqlFile,true); } - catch(e){trace("SavedData2 SetUp error : "+e)} + catch(e){SaffronLogger.log("SavedData2 SetUp error : "+e)} } /*var encrypt:ByteArray = new ByteArray(); @@ -131,18 +131,18 @@ sql = new SQLConnection(); try { - trace("Is DB exists? "+sqlFile.exists); + SaffronLogger.log("Is DB exists? "+sqlFile.exists); sql.open(sqlFile,SQLMode.CREATE,false,1024,key); } catch(e:Error) { - trace("Error happend : "+e.message); + SaffronLogger.log("Error happend : "+e.message); sql = null ; var lostDB:File = updatedFile.parent.resolvePath('lostDB'+new Date().time); - //trace("updatedFile : "+updatedFile.nativePath); + //SaffronLogger.log("updatedFile : "+updatedFile.nativePath); if(updatedFile.exists) { - //trace("lostDB : "+lostDB.nativePath); + //SaffronLogger.log("lostDB : "+lostDB.nativePath); updatedFile.moveTo(lostDB); } if(sqlFile.exists) @@ -169,29 +169,29 @@ { query.text = "create table "+tableName+" ("+field_id+" VARCHAR(1) , "+field_value+" BLOB , "+field_date+" INT) "; query.execute(); - trace('table is creats'); + SaffronLogger.log('table is creats'); } catch(e) { - trace('table was created'); + SaffronLogger.log('table was created'); } try { query.text = "create index if not EXISTS "+tableName+"_indexes on "+tableName+" ("+field_id+");" ; query.execute() ; - trace('index is creates') ; + SaffronLogger.log('index is creates') ; } catch(e) { - trace('Create index problem') ; + SaffronLogger.log('Create index problem') ; } } if(needToUpdate) { - trace("sqlFile : "+sqlFile.nativePath); - trace("updatedFile : "+updatedFile.nativePath); + SaffronLogger.log("sqlFile : "+sqlFile.nativePath); + SaffronLogger.log("updatedFile : "+updatedFile.nativePath); if(!updatedFile.exists) { sqlFile.copyTo(updatedFile); @@ -203,7 +203,7 @@ /**SQL is opened*/ protected static function asincSQLisReady(event:SQLEvent):void { - trace("****SQL is open****"); + SaffronLogger.log("****SQL is open****"); asyncSQLisOpened = true ; asyncSql.removeEventListener(SQLEvent.OPEN,asincSQLisReady); if(!asyncQuery.executing) @@ -221,14 +221,14 @@ public static function save(id:String,data:*):void { setUp(); - trace("Save !!"); + SaffronLogger.log("Save !!"); var dateNum:Number = new Date().time; asyncQue.push(new SavedDataQueeItem(id,data,dateNum)); - trace("asyncSQLisOpened : "+asyncSQLisOpened); - trace("asyncQuery.executing : "+asyncQuery.executing); + SaffronLogger.log("asyncSQLisOpened : "+asyncSQLisOpened); + SaffronLogger.log("asyncQuery.executing : "+asyncQuery.executing); if(asyncQuery.executing || !asyncSQLisOpened) { - trace("**Async db is bussy right now ..."); + SaffronLogger.log("**Async db is bussy right now ..."); return ; } @@ -249,26 +249,26 @@ asyncQuery.clearParameters(); asyncQuery.text = "delete from "+tableName+" where "+field_id+" == @"+field_id ; asyncQuery.parameters['@'+field_id] = id ; - trace("*************** asyncQuery.text : "+asyncQuery.text); + SaffronLogger.log("*************** asyncQuery.text : "+asyncQuery.text); asyncQuery.addEventListener(SQLEvent.RESULT,continueSaving); asyncQuery.execute(); } - private static function continueSaving(e:*=null) + private static function continueSaving(e:*=null):void { var id:String = asyncQue[0].id ; var data:* = asyncQue[0].data ; var date:Number = asyncQue[0].date ; - trace("************Query executed"); + SaffronLogger.log("************Query executed"); asyncQuery.removeEventListener(SQLEvent.RESULT,continueSaving); //( "+field_id+" , "+field_value+" , "+field_date+" ) asyncQuery.text = "insert into "+tableName+" values( @"+field_id+" , @"+field_value+" , "+date+" )"; asyncQuery.parameters["@"+field_id] = id ; asyncQuery.parameters["@"+field_value] = data ; - //trace("query.text : "+query.text); + //SaffronLogger.log("query.text : "+query.text); asyncQuery.addEventListener(SQLEvent.RESULT,savingCompleted); asyncQuery.execute(); @@ -283,7 +283,7 @@ } /**load the value if the value is new on data base*/ - public static function loadIfNewer(id,lastDate:Date=null):* + public static function loadIfNewer(id:*,lastDate:Date=null):* { return load(id,lastDate); } @@ -293,16 +293,16 @@ * if no value founds , it will return null instead of some Stringifi data*/ public static function load(id:String,lastAcceptableDate:Date=null):* { - TimeTracer.tr("get "+id); + //TimeTracer.tr("get "+id); setUp(); var l:uint = asyncQue.length ; var l2:uint = asyncSaved.length ; - for(var i = l-1 ; i>=0 ; i--) + for(var i:* = l-1 ; i>=0 ; i--) { if(asyncQue[i].id == id) { - TimeTracer.tr("founded "+id); + //TimeTracer.tr("founded "+id); savedDate = asyncQue[i].date ; return asyncQue[i].data ; } @@ -313,7 +313,7 @@ { if(lastAcceptableDate===null || asyncSaved[i].date>lastAcceptableDate.time) { - TimeTracer.tr("founded "+id); + //TimeTracer.tr("founded "+id); savedDate = asyncSaved[i].date ; return asyncSaved[i].data ; } @@ -328,7 +328,7 @@ if(lastAcceptableDate != null) { var lastDate:Number = lastAcceptableDate.time ; - trace("requested date : "+lastDate); + SaffronLogger.log("requested date : "+lastDate); dateControllQuery = ' and '+field_date+" >= "+lastDate ; } //var check:Object = temporaryObject[id]; @@ -337,34 +337,34 @@ return check.data; }*/ - //trace("it have to send query to db to detect the data"); + //SaffronLogger.log("it have to send query to db to detect the data"); query.clearParameters(); query.text = "select "+field_value+','+field_date+" from "+tableName+" where "+field_id+" == @"+field_id+dateControllQuery; query.parameters["@"+field_id] = id ; - //trace("query.text : "+query.text); + //SaffronLogger.log("query.text : "+query.text); try { query.execute(); var result:SQLResult = query.getResult() ; if(result.data == null) { - //trace("didnt found"); + //SaffronLogger.log("didnt found"); return null ; } else { - //trace("data founds : "+result.data[0]); - //trace('result on query is : '+(result.data[0][field_value]==null)+' > check string : '+(result.data[0][field_value]=='null')); + //SaffronLogger.log("data founds : "+result.data[0]); + //SaffronLogger.log('result on query is : '+(result.data[0][field_value]==null)+' > check string : '+(result.data[0][field_value]=='null')); var res:* = result.data[0][field_value] ; savedDate = result.data[0][field_date] ; - TimeTracer.tr("founded on db "+id); + //TimeTracer.tr("founded on db "+id); return res ; } } catch(e) { - trace("DB error : "+e); + SaffronLogger.log("DB error : "+e); } return null ; } diff --git a/diagrams/calender/Calender.as b/diagrams/calender/Calender.as index a63e1a51..971ec011 100644 --- a/diagrams/calender/Calender.as +++ b/diagrams/calender/Calender.as @@ -64,7 +64,7 @@ package diagrams.calender } else { - trace('this kind of calender is not defined yet 2'); + SaffronLogger.log('this kind of calender is not defined yet 2'); } //return areaMC ; @@ -122,7 +122,7 @@ package diagrams.calender } else { - trace('this kind of calender is not defined yet 2'); + SaffronLogger.log('this kind of calender is not defined yet 2'); } } diff --git a/diagrams/calender/CalenderBox.as b/diagrams/calender/CalenderBox.as index c179565e..82258916 100644 --- a/diagrams/calender/CalenderBox.as +++ b/diagrams/calender/CalenderBox.as @@ -257,7 +257,7 @@ package diagrams.calender protected function calBoxSelected(event:MouseEvent):void { - trace('show calender data now'); + SaffronLogger.log('show calender data now'); this.dispatchEvent(new CalenderEvent(CalenderEvent.DATE_SELECTED,cahsedContents,data.Mdate,data.to)); } diff --git a/diagrams/calender/CalenderConstants.as b/diagrams/calender/CalenderConstants.as index 1a09b983..0d3e3da9 100644 --- a/diagrams/calender/CalenderConstants.as +++ b/diagrams/calender/CalenderConstants.as @@ -32,6 +32,11 @@ package diagrams.calender public static var dayNames:Array = [d0,d1,d2,d3,d4,d5,d6]; + + public static function getDayNameFarsi(date:Date):String + { + return dayNames[(date.day+1)%7]; + } public static var dayNames2:Vector. = new Vector.(); dayNames2.push(dd0,dd1,dd2,dd3,dd4,dd5,dd6); diff --git a/diagrams/calender/CalenderDateData.as b/diagrams/calender/CalenderDateData.as index b77eac8b..2a485195 100644 --- a/diagrams/calender/CalenderDateData.as +++ b/diagrams/calender/CalenderDateData.as @@ -45,7 +45,7 @@ package diagrams.calender /*if(todayDate.fullYear == dateOnMonth.fullYear && todayDate.month == dateOnMonth.month && todayDate.date == dateOnMonth.date) { - trace('current day is on this month'); + SaffronLogger.log('current day is on this month'); currentDate = dateOnMonth ; } else @@ -83,7 +83,7 @@ package diagrams.calender //find the first date of this month do { - //trace(testDate+" vs "+testShamsiDate); + //SaffronLogger.log(testDate+" vs "+testShamsiDate); eachDayData.unshift(new CalenderDayData(testDate,testShamsiDate,today)); testDate.date--; @@ -93,7 +93,7 @@ package diagrams.calender //eachDayData.shift(); firstDate = new Date(testDate.fullYear,testDate.month,testDate.date); - //trace("firstDate : "+firstDate); + //SaffronLogger.log("firstDate : "+firstDate); firstDateShamsi = MyShamsi.miladiToShamsi(firstDate); //detect first day of the week @@ -109,7 +109,7 @@ package diagrams.calender testDate.date++; testShamsiDate = MyShamsi.miladiToShamsi(testDate) ; - //trace(testDate+" vs "+testShamsiDate); + //SaffronLogger.log(testDate+" vs "+testShamsiDate); eachDayData.push(new CalenderDayData(testDate,testShamsiDate,today)); @@ -169,12 +169,12 @@ package diagrams.calender { if(today.time>=firstDate.time && today.time '+begin.time); - trace("end : "+end+' > '+end.time); - trace(".Mdate : "+Mdate+' > '+Mdate.time); - trace(".to : "+to+' > '+to.time); + SaffronLogger.log("begin : "+begin+' > '+begin.time); + SaffronLogger.log("end : "+end+' > '+end.time); + SaffronLogger.log(".Mdate : "+Mdate+' > '+Mdate.time); + SaffronLogger.log(".to : "+to+' > '+to.time); //Version 1.1 change : if(begin.time< = to.time && end.time>=Mdate.time) if(begin.time< to.time && end.time>=Mdate.time) { diff --git a/diagrams/calender/MyShamsi.as b/diagrams/calender/MyShamsi.as index 51f3e363..e462c970 100644 --- a/diagrams/calender/MyShamsi.as +++ b/diagrams/calender/MyShamsi.as @@ -19,7 +19,7 @@ } else { - trace(new Error(date + " is not in standard form")); + SaffronLogger.log(new Error(date + " is not in standard form")); return new Date(); } } @@ -220,7 +220,7 @@ return mounthName; } - public function toString(e = null):String + public function toString(e:* = null):String { return fullYear + '/' + (month + 1) + '/' + date + ' ' + hours + ':' + minutes + ':' + seconds; } diff --git a/diagrams/dataGrid/DataGrid.as b/diagrams/dataGrid/DataGrid.as index d803b779..6749d38a 100644 --- a/diagrams/dataGrid/DataGrid.as +++ b/diagrams/dataGrid/DataGrid.as @@ -102,7 +102,7 @@ } else { - trace("Cannot add this item to the stage"); + SaffronLogger.log("Cannot add this item to the stage"); return ; break; } diff --git a/diagrams/instagram/DiagramPreveiw.as b/diagrams/instagram/DiagramPreveiw.as index 756b44f9..e36cb476 100644 --- a/diagrams/instagram/DiagramPreveiw.as +++ b/diagrams/instagram/DiagramPreveiw.as @@ -109,7 +109,7 @@ package diagrams.instagram public function changeVals(newValues:InstagramData) { myDiagramVals = newValues ; - trace("Change the diagram interface"); + SaffronLogger.log("Change the diagram interface"); changeYs(); } diff --git a/diagrams/instagram/InstaText.as b/diagrams/instagram/InstaText.as index a674e849..e834c57f 100644 --- a/diagrams/instagram/InstaText.as +++ b/diagrams/instagram/InstaText.as @@ -61,9 +61,9 @@ public class InstaText extends TextField { override public function set text(value:String):void { - //trace(" , seperatore used for : "+value); + //SaffronLogger.log(" , seperatore used for : "+value); if (!isNaN(Number(value))) { - //trace(" ... and value is number"); + //SaffronLogger.log(" ... and value is number"); var newText:String = ''; var cnt:uint = 0; for (var i = value.length - 1; i >= 0; i--) { diff --git a/diagrams/instagram/InstaTitle.as b/diagrams/instagram/InstaTitle.as index cf1d5f4a..b7da6f0c 100644 --- a/diagrams/instagram/InstaTitle.as +++ b/diagrams/instagram/InstaTitle.as @@ -45,7 +45,7 @@ package diagrams.instagram { this.graphics.lineStyle(InstagramConstants.Diagram_guide_line_thickness,InstagramConstants.Diagram_colors); - //trace("myText.width : "+myText.width); + //SaffronLogger.log("myText.width : "+myText.width); this.graphics.moveTo(myText.width,myText.height/2); this.graphics.lineTo(myText.width+InstagramConstants.Diagram_title_lineWidth,myText.height/2); } @@ -54,7 +54,7 @@ package diagrams.instagram { this.graphics.lineStyle(InstagramConstants.Diagram_guide_line_thickness,InstagramConstants.Diagram_colors); - //trace("myText.width : "+myText.width); + //SaffronLogger.log("myText.width : "+myText.width); this.graphics.moveTo(myText.width/2,0); this.graphics.lineTo(myText.width/2,-InstagramConstants.Diagram_title_lineHeight); } diff --git a/diagrams/instagram/Instagram.as b/diagrams/instagram/Instagram.as index c080720e..d1d52e5d 100644 --- a/diagrams/instagram/Instagram.as +++ b/diagrams/instagram/Instagram.as @@ -240,7 +240,7 @@ package diagrams.instagram if(isLock || !isChanged) { - trace('Diagram is lock now'); + SaffronLogger.log('Diagram is lock now'); return ; } clearOldDiagram(); @@ -287,7 +287,7 @@ package diagrams.instagram { var vVal:Number = myDiagramDatas[i].values[j].Vval ; minVNumber = Math.min(minVNumber,vVal) ; - //trace("min val : "+minVNumber,vVal); + //SaffronLogger.log("min val : "+minVNumber,vVal); maxVNumber = Math.max(maxVNumber,vVal) ; myTitles.addHTitle(new InstaTitleValue(myDiagramDatas[i].values[j].Hval)); @@ -313,58 +313,58 @@ package diagrams.instagram if(pushedTitles != null && pushedTitles.vTitle.length>0) { - //trace("min val2 : "+pushedTitles.vTitle[0].value); + //SaffronLogger.log("min val2 : "+pushedTitles.vTitle[0].value); realMinimom = minVNumber = Math.min(pushedTitles.vTitle[0].value,minVNumber); realMaximom = maxVNumber = Math.max(pushedTitles.vTitle[pushedTitles.vTitle.length-1].value,maxVNumber); } - //trace("minHNumber : "+minHNumber); - //trace("maxHNumber : "+maxHNumber); + //SaffronLogger.log("minHNumber : "+minHNumber); + //SaffronLogger.log("maxHNumber : "+maxHNumber); - //trace("minVNumber : "+minVNumber+' < '+realMinimom); - //trace("maxVNumber : "+maxVNumber+' < '+realMaximom); + //SaffronLogger.log("minVNumber : "+minVNumber+' < '+realMinimom); + //SaffronLogger.log("maxVNumber : "+maxVNumber+' < '+realMaximom); //Generate myTitles ↓ //debug lines - /*trace(11+" : "+log10(11)); - trace(98+" : "+log10(98)); - trace(120+" : "+log10(120)); - trace(5+" : "+log10(5)); - trace(0.1+" : "+log10(0.1)); - trace(0.3+" : "+log10(0.3)); + /*SaffronLogger.log(11+" : "+log10(11)); + SaffronLogger.log(98+" : "+log10(98)); + SaffronLogger.log(120+" : "+log10(120)); + SaffronLogger.log(5+" : "+log10(5)); + SaffronLogger.log(0.1+" : "+log10(0.1)); + SaffronLogger.log(0.3+" : "+log10(0.3)); return;*/ //1- Maximom steps : - //trace("0-1 maxHeight : "+maxHeight); + //SaffronLogger.log("0-1 maxHeight : "+maxHeight); var maxTitleNumber:uint = Math.floor(maxHeight/vTitleHeights); maxTitleNumber = dividableBy5(maxTitleNumber); - //trace("1-maxTitleNumber : "+maxTitleNumber); + //SaffronLogger.log("1-maxTitleNumber : "+maxTitleNumber); /**n*///it doesn't need to increase 2 step from available places because, from now, titles can be at the toppest and bottomest places on the diagram. var availableTitleNumbers:uint = Math.max(1, maxTitleNumber/*-2*/) ; - //trace("2-availableTitleNumbers : "+availableTitleNumbers); + //SaffronLogger.log("2-availableTitleNumbers : "+availableTitleNumbers); //2- delta phase on availableTitileNumbers var deltaPhase:Number = maxVNumber - minVNumber ; - //trace("3-deltaPhase : "+deltaPhase); + //SaffronLogger.log("3-deltaPhase : "+deltaPhase); /**m*/ var pureSteps:Number if (InstagramConstants.fixVerticalSteps) pureSteps = 1 ; else pureSteps = deltaPhase / availableTitleNumbers ; - //trace("4-pureSteps : "+pureSteps); + //SaffronLogger.log("4-pureSteps : "+pureSteps); //3- find steps level ( 10 , 100 , 1000 , ... ) /**o*/ var stepsPower:Number = log10(pureSteps); - //trace('5-stepsPower : '+stepsPower); + //SaffronLogger.log('5-stepsPower : '+stepsPower); /**p*/ var smallSteps:Number = pureSteps/stepsPower ; - //trace('6-smallSteps : '+smallSteps); + //SaffronLogger.log('6-smallSteps : '+smallSteps); var steps:Number = stepsPower * Math.round(smallSteps); - //trace('7-steps : '+steps); + //SaffronLogger.log('7-steps : '+steps); var minStep:Number = Math.max(realMinimom, Math.floor(minVNumber / steps) * steps); - //trace("8-minStep : "+minStep); + //SaffronLogger.log("8-minStep : "+minStep); var vTitleTemp:String ; var vStepValTemp:Number ; @@ -383,19 +383,19 @@ package diagrams.instagram } } myTitles.addVTitle(new InstaTitleValue(vStepValTemp,vTitleTemp)); - //trace("steps : "+minStep); + //SaffronLogger.log("steps : "+minStep); minStep+=steps; }while(minStep-steps>maxDegree : "+centerDegree[i]/PiChart.pi*180); + SaffronLogger.log(">>maxDegree : "+centerDegree[i]/PiChart.pi*180); maxDegree = minDegree+myDegree ; minDegree = maxDegree ; } diff --git a/diagrams/table/Table.as b/diagrams/table/Table.as index b56c5796..bd09b62a 100644 --- a/diagrams/table/Table.as +++ b/diagrams/table/Table.as @@ -53,7 +53,7 @@ package diagrams.table if(myTitles==null) { - trace("No title added"); + SaffronLogger.log("No title added"); return ; } @@ -65,12 +65,12 @@ package diagrams.table var vl:uint = myTitles.VTitles.length ; if(vl == 0) { - trace("No vertical title added"); + SaffronLogger.log("No vertical title added"); return ; } else if(hl == 0) { - trace("No horizontal title added"); + SaffronLogger.log("No horizontal title added"); return ; } var Wfix:Number ; @@ -205,7 +205,7 @@ package diagrams.table if(myContents.contentList[i].hid == tableContent.contentList[j].hid && myContents.contentList[i].vid == tableContent.contentList[j].vid) { - trace("Old content droped"); + SaffronLogger.log("Old content droped"); myContents.contentList.splice(i,1); i--; } @@ -226,18 +226,18 @@ package diagrams.table if(myContents == null || tableBoxes==null) { - trace("Cannot create contents"); + SaffronLogger.log("Cannot create contents"); return ; } - trace("manage contentes"); + SaffronLogger.log("manage contentes"); var backUpdated:Boolean ; for(var j = 0 ; j '+thickness); + //SaffronLogger.log("start drawing to : "+X,Y+' > '+thickness); if(isRubber) { DrawingPlace = rubberPlace ; @@ -205,7 +205,7 @@ DrawingPlace.graphics.lineStyle(thickness,color,1,false,"stretch",CapsStyle.ROUND,JointStyle.ROUND,3); if(bitmapData != null) { - //trace("Rubber color : "+color); + //SaffronLogger.log("Rubber color : "+color); DrawingPlace.graphics.lineBitmapStyle(bitmapData,new Matrix(backImage.scaleX,0,0,backImage.scaleX),false,true); } DrawingPlace.graphics.moveTo(X,Y); @@ -224,7 +224,7 @@ lineTo(myX+2,myY) } - public function lineTo(X:Number,Y:Number) + public function lineTo(X:Number,Y:Number):void { //send these parameters to currentPenLine if there is an active one there myX = X ; @@ -237,7 +237,7 @@ /**Stop the current item to continue draw*/ public function stopDraw():void { - for(var i = 0 ; i<20 ; i++) + for(var i:* = 0 ; i<20 ; i++) { drawLines(); } @@ -252,14 +252,14 @@ } else { - trace("call it with dilay"); + SaffronLogger.log("call it with dilay"); captureAndSaveDrawingDilay(); } - trace("stop drawing"); + SaffronLogger.log("stop drawing"); } - public function importBitmap(bitmap:Bitmap) + public function importBitmap(bitmap:Bitmap):void { var currentDrawnBitmap:Bitmap = bitmap; currentDrawnBitmap.smoothing = true ; @@ -275,7 +275,7 @@ { if(resolution==0) { - trace("Paper resolution sat to : "+backImage.scaleX) ; + SaffronLogger.log("Paper resolution sat to : "+backImage.scaleX) ; resolution = 1/backImage.scaleX ; } //New Function ↓ @@ -293,7 +293,7 @@ if(withBackGround) { captureThis = this ; - trace("Capture me with my background") + SaffronLogger.log("Capture me with my background") } else { @@ -309,7 +309,7 @@ paperRect.top -= drawingMargin ; paperRect.right += drawingMargin ; paperRect.bottom += drawingMargin ; - trace("capture this area : "+paperRect); + SaffronLogger.log("capture this area : "+paperRect); } else { @@ -366,7 +366,7 @@ /////////////////////////////////////////// - private function setUpCaptureWithDilay() + private function setUpCaptureWithDilay():void { captureTimer = new Timer(captureDilay,1); captureTimer.addEventListener(TimerEvent.TIMER_COMPLETE,captureAndSaveDrawing); diff --git a/dynamicFrame/FrameGenerator.as b/dynamicFrame/FrameGenerator.as index f3adbc93..05eff10a 100644 --- a/dynamicFrame/FrameGenerator.as +++ b/dynamicFrame/FrameGenerator.as @@ -24,7 +24,7 @@ import flash.text.TextField; color = defaultColor ; var margin:uint = 1 ; var extarTopMargin:uint = 0 ; - var roundLevel:uint = 5 ; + var roundLevel:uint = 0 ; var frame:Sprite = new Sprite(); stage.addChild(frame); frame.graphics.beginFill(color); diff --git a/fileBrowser/FileBrowser2.as b/fileBrowser/FileBrowser2.as index d1384e7b..af63397c 100644 --- a/fileBrowser/FileBrowser2.as +++ b/fileBrowser/FileBrowser2.as @@ -87,7 +87,7 @@ if(neededLang!='') { - trace( "Please add below tags to the Language.xml file for FileBrowser class.\n\n"+neededLang ); + SaffronLogger.log( "Please add below tags to the Language.xml file for FileBrowser class.\n\n"+neededLang ); } lastLocation = File.userDirectory ; @@ -115,7 +115,7 @@ public static function get isSupported():Boolean { - trace("Check the iOS action for file browser first"); + SaffronLogger.log("Check the iOS action for file browser first"); return true ; } @@ -130,7 +130,7 @@ public static function browsToSave(targetBytes:ByteArray,fileName:String):void { - trace("Save the file with the name ; "+fileName); + SaffronLogger.log("Save the file with the name ; "+fileName); selectedFileBytes = targetBytes ; mode = 2; Name = fileName ; @@ -155,14 +155,14 @@ } baseFolderTarget = baseFolder.nativePath ; } - trace("lastLocation : "+lastLocation+' vs '+baseFolder) + SaffronLogger.log("lastLocation : "+lastLocation+' vs '+baseFolder) if(lastLocation==null) { lastLocation = baseFolder ; } else { - trace("Location was not null : "+lastLocation.nativePath); + SaffronLogger.log("Location was not null : "+lastLocation.nativePath); } if( @@ -262,20 +262,20 @@ } var popText:PopMenuContent = new PopMenuContent(hint,null,buttons); - trace("Open browser"); + SaffronLogger.log("Open browser"); PopMenu1.popUp(Contents.lang.t.file_selector_title,null,popText,0,onFileSelected); } /**Sort files by their name*/ private static function sortFolders(a:File,b:File):int { - trace("Compair "+a.name+" vs "+b.name+" = "+StringFunctions.compairFarsiString(a.name,b.name)); + SaffronLogger.log("Compair "+a.name+" vs "+b.name+" = "+StringFunctions.compairFarsiString(a.name,b.name)); return StringFunctions.compairFarsiString(a.name,b.name); } private static function onFileSelected(e:PopMenuEvent):void { - //trace('e :',JSON.stringify(e)); + //SaffronLogger.log('e :',JSON.stringify(e)); var myFile:File ; if(e.buttonTitle == Contents.lang.t.back_folder) @@ -304,7 +304,7 @@ saveTarget = lastLocation.resolvePath(baseName+'_'+index+extention); index++ ; } - trace("File saved to : "+saveTarget.nativePath); + SaffronLogger.log("File saved to : "+saveTarget.nativePath); var status:String = FileManager.seveFile(saveTarget,selectedFileBytes); if(status!='') { @@ -385,7 +385,7 @@ private static function startSearch():void { - trace("Start the search about : "+lastSearchVal); + SaffronLogger.log("Start the search about : "+lastSearchVal); var searchMC:MovieClip = new MovieClip(); searchTF = new MTTextField(0,30,"B Yekan Regular"); @@ -428,15 +428,15 @@ queEndTime = getTimer()+(frameTimes)*4/5; while(getTimer()queEndTime) { searchQue.push(myFile); - //trace("Time out on : "+file.nativePath); + //SaffronLogger.log("Time out on : "+file.nativePath); return ; } diff --git a/image/BitmapImage.as b/image/BitmapImage.as index d6b0dac2..c4d35ec4 100644 --- a/image/BitmapImage.as +++ b/image/BitmapImage.as @@ -44,7 +44,7 @@ package image _bitmapdata = Bitmapdata_p if(_bitmapdata==null) { - trace('Bitmapdata is null') + SaffronLogger.log('Bitmapdata is null') return } loadInThisArea = LoadInThisArea_p diff --git a/movieClipAssist/RandomFrameClip.as b/movieClipAssist/RandomFrameClip.as new file mode 100644 index 00000000..ad612e2e --- /dev/null +++ b/movieClipAssist/RandomFrameClip.as @@ -0,0 +1,15 @@ + +package movieClipAssist +//movieClipAssist.RandomFrameClip +{ + import flash.display.MovieClip; + + public class RandomFrameClip extends MovieClip + { + public function RandomFrameClip() + { + super(); + this.gotoAndStop(Math.floor(Math.random()*this.totalFrames+1)); + } + } +} \ No newline at end of file diff --git a/movieClipAssist/RandomFrameClipPlay.as b/movieClipAssist/RandomFrameClipPlay.as new file mode 100644 index 00000000..280a9298 --- /dev/null +++ b/movieClipAssist/RandomFrameClipPlay.as @@ -0,0 +1,16 @@ + +package movieClipAssist +//movieClipAssist.RandomFrameClipPlay +{ + import flash.display.MovieClip; + import contents.alert.Alert; + + public class RandomFrameClipPlay extends MovieClip + { + public function RandomFrameClipPlay() + { + super(); + this.gotoAndPlay(Math.floor(Math.random()*this.totalFrames+1)); + } + } +} \ No newline at end of file diff --git a/movieClipAssist/SerialFrameClip.as b/movieClipAssist/SerialFrameClip.as new file mode 100644 index 00000000..b1877ced --- /dev/null +++ b/movieClipAssist/SerialFrameClip.as @@ -0,0 +1,17 @@ + +package movieClipAssist +//movieClipAssist.SerialFrameClip +{ + import flash.display.MovieClip; + + public class SerialFrameClip extends MovieClip + { + private static var lastFrame:uint = 0 ; + public function SerialFrameClip() + { + super(); + this.gotoAndStop((lastFrame%this.totalFrames)+1); + lastFrame++ + } + } +} \ No newline at end of file diff --git a/movieClipAssist/StopAtEnd.as b/movieClipAssist/StopAtEnd.as new file mode 100644 index 00000000..0afa704e --- /dev/null +++ b/movieClipAssist/StopAtEnd.as @@ -0,0 +1,20 @@ + +package movieClipAssist +//movieClipAssist.StopAtEnd +{ + import flash.display.MovieClip; + + public class StopAtEnd extends MovieClip + { + public function StopAtEnd() + { + super(); + this.addFrameScript(this.totalFrames-1,stopMe); + } + + private function stopMe():void + { + this.stop(); + } + } +} \ No newline at end of file diff --git a/mp3Player/MediaPlayerMT.as b/mp3Player/MediaPlayerMT.as index ecda6486..91e763c7 100644 --- a/mp3Player/MediaPlayerMT.as +++ b/mp3Player/MediaPlayerMT.as @@ -149,21 +149,21 @@ package mp3Player protected function TryLater(event:URLSaverEvent):void { - trace("Internet connection fails , but I will try again ... "); + SaffronLogger.log("Internet connection fails , but I will try again ... "); } protected function Loading(event:URLSaverEvent):void { - trace("Im downloading..1:"+event.precent ); - trace("Im downloading..2:"+ String( event.precent*100 ).substr(0,3) ); + SaffronLogger.log("Im downloading..1:"+event.precent ); + SaffronLogger.log("Im downloading..2:"+ String( event.precent*100 ).substr(0,3) ); precentTF.text = Math.round(Number(String( event.precent*100 ).substr(0,3))) +' %'; } protected function SoundIsReady(event:URLSaverEvent):void { - trace("sound file is ready to use"); + SaffronLogger.log("sound file is ready to use"); startToPlaySound(event.offlineTarget); } @@ -176,7 +176,7 @@ package mp3Player SoundIsLoaded = true ; precentTF.text = '' ; sliderMC.userSlideEnabled(); - //trace("Add my sound to sound player"); + //SaffronLogger.log("Add my sound to sound player"); SoundPlayer.addSound(offlineURL,mediaSoundID,false,1); this.addEventListener(Event.ENTER_FRAME,checkPrecent); @@ -211,7 +211,7 @@ package mp3Player } var precent:Number = SoundPlayer.getPlayedPrecent(mediaSoundID) ; - //trace("Sound precent is : "+precent); + //SaffronLogger.log("Sound precent is : "+precent); currentTF.text = TimeToString.timeInString(Math.round(precent*(currentMuseicTotalTimeInMilisecond/1000))); } @@ -252,7 +252,7 @@ package mp3Player { if(SoundIsLoaded) { - //trace("new precent seleced : "+newPrecetn); + //SaffronLogger.log("new precent seleced : "+newPrecetn); SoundPlayer.pause(mediaSoundID,true); SoundPlayer.play(mediaSoundID,true,true,newPrecetn); playPauseBTN.gotoAndStop(2); diff --git a/mp3Player/MediaSlider.as b/mp3Player/MediaSlider.as index 58c031d5..7d87544f 100644 --- a/mp3Player/MediaSlider.as +++ b/mp3Player/MediaSlider.as @@ -69,7 +69,7 @@ package mp3Player myPrecent = 1 ; } currentPrecent = myPrecent ; - //trace("Touched Precent is : "+currentPrecent); + //SaffronLogger.log("Touched Precent is : "+currentPrecent); onChanged(currentPrecent); } } diff --git a/mp3PlayerStatic/MediaPlayerStatic.as b/mp3PlayerStatic/MediaPlayerStatic.as index 2c9509c3..00359ff1 100644 --- a/mp3PlayerStatic/MediaPlayerStatic.as +++ b/mp3PlayerStatic/MediaPlayerStatic.as @@ -161,7 +161,7 @@ protected function TryLater(event:URLSaverEvent):void { - trace("Internet connection fails , but I will try again ... "); + SaffronLogger.log("Internet connection fails , but I will try again ... "); } protected function Loading(event:URLSaverEvent):void @@ -171,8 +171,8 @@ } protected function loadingPrecent(Precent_p:Number):void { - // trace("Im downloading..1:"+Precent_p ); - // trace("Im downloading..2:"+ String( Precent_p*100 ).substr(0,3) ); + // SaffronLogger.log("Im downloading..1:"+Precent_p ); + // SaffronLogger.log("Im downloading..2:"+ String( Precent_p*100 ).substr(0,3) ); var _precent:Number = Math.round(Number(String(Precent_p*100 ).substr(0,3))); this.dispatchEvent(new MediaPlayerEventStatic(MediaPlayerEventStatic.DOWNLOAD_PRECENT,1,1,1,_precent)) if(_precent>=100) @@ -217,8 +217,8 @@ loadingPrecent(SoundPlayer.getLoadedSoundPrecent(mediaSoundID)) this.dispatchEvent(new MediaPlayerEventStatic(MediaPlayerEventStatic.SOUND_PRESENT,1,1,SoundPlayer.getPlayedPrecent(mediaSoundID))) //SoundPlayer.getExtractedData(mediaSoundID,bytArray) - //trace('bytArray :',bytArray.readInt()) - //trace('SoundPlayer.getPlayedPrecent(mediaSoundID) :',SoundPlayer.getPlayedPrecent(mediaSoundID)) + //SaffronLogger.log('bytArray :',bytArray.readInt()) + //SaffronLogger.log('SoundPlayer.getPlayedPrecent(mediaSoundID) :',SoundPlayer.getPlayedPrecent(mediaSoundID)) } /**precent changed by client*/ diff --git a/mp3PlayerStatic/VolumeStatic.as b/mp3PlayerStatic/VolumeStatic.as index 3be868fc..0a912998 100644 --- a/mp3PlayerStatic/VolumeStatic.as +++ b/mp3PlayerStatic/VolumeStatic.as @@ -54,13 +54,13 @@ package mp3PlayerStatic private function onMouseDOWN():void { - trace('mouse down :',volumeMc.value/100) + SaffronLogger.log('mouse down :',volumeMc.value/100) } private function onMousUP():void { - trace('mouse up :',volumeMc.value/100) + SaffronLogger.log('mouse up :',volumeMc.value/100) MediaPlayerStatic.evt.dispatchEvent(new MediaPlayerEventStatic(MediaPlayerEventStatic.VOLUME,volumeMc.value/100)) } diff --git a/nativeClasses/Flic.as b/nativeClasses/Flic.as index 641cfae2..05ae1fd4 100644 --- a/nativeClasses/Flic.as +++ b/nativeClasses/Flic.as @@ -32,7 +32,7 @@ package nativeClasses public function Flic(target:IEventDispatcher=null) { super(target); - trace('Key :',Key) + SaffronLogger.log('Key :',Key) _ignoreFirstClick = !Key; } public static function setup(onNewDevicePaired_p:Function=null,onNoDeviceFound_p:Function=null,onPrivateButton_p:Function=null,onButtonDown_p:Function=null,onButtonUp_p:Function=null,error_p:Function=null):void @@ -45,7 +45,7 @@ package nativeClasses _error= error_p; try { - trace('on start init flic') + SaffronLogger.log('on start init flic') mteamFlicManager = new MteamFlicManager(); mteamFlicManager.addEventListener(FlicEvent.NewDevicePaired,onNewDevicePaired); mteamFlicManager.addEventListener(FlicEvent.NoDeviceFound,onNoDeviceFound); @@ -57,7 +57,7 @@ package nativeClasses catch(e:*) { _error.call(); - trace('flic init error') + SaffronLogger.log('flic init error') } } @@ -74,19 +74,19 @@ package nativeClasses { GlobalStorage.save(saveDevicePaired,'oneDevaisePaired'); _onNewDevicePaired.call(); - trace('******onNewDevicePaired*****') + SaffronLogger.log('******onNewDevicePaired*****') } protected static function onNoDeviceFound(event:FlicEvent) { _onNoDeviceFound.call(); - trace('onNoDeviceFound') + SaffronLogger.log('onNoDeviceFound') } protected static function onPrivateButton(event:FlicEvent) { _onPrivateButton.call(); - trace('onPrivateButton') + SaffronLogger.log('onPrivateButton') } protected static function onButtonDown(event:FlicEvent) { @@ -98,7 +98,7 @@ package nativeClasses } private static function lastClick(ButtonId_p:String):Boolean { - trace('Number(ButtonId_p) :',Number(ButtonId_p), '_ignoreFirstClick :',_ignoreFirstClick); + SaffronLogger.log('Number(ButtonId_p) :',Number(ButtonId_p), '_ignoreFirstClick :',_ignoreFirstClick); if(Number(ButtonId_p)==0 && !_ignoreFirstClick) { return true; diff --git a/nativeClasses/Sharing.as b/nativeClasses/Sharing.as index fe006ea8..1df0528c 100644 --- a/nativeClasses/Sharing.as +++ b/nativeClasses/Sharing.as @@ -14,8 +14,10 @@ import flash.filesystem.File; import flash.utils.getDefinitionByName; import contents.alert.Alert; + import flash.events.EventDispatcher; + import flash.events.Event; - public class Sharing { + public class Sharing extends EventDispatcher{ private var shareClass:Class, shareOptionClass:Class, shareEventClass:Class; private var _isSupports:Boolean = false; @@ -44,21 +46,24 @@ } /**Share this text*/ - public function shareText(str:String, downloadLinkLable:String = '', imageBirmapData:BitmapData = null):void { + public function shareText(str:String, downloadLinkLable:String = '', imageBirmapData:BitmapData = null,filePath:String="",mimeType:String="application/pdf"):void { var sharedString:String; if (_addStoreMarket == true) sharedString = str + '\n\n' + DevicePrefrence.appName + '\n' + downloadLinkLable + '\n' + ((DevicePrefrence.downloadLink_iOS == '') ? '' : 'Apple Store: ' + DevicePrefrence.downloadLink_iOS + '\n\n') + ((DevicePrefrence.downloadLink_playStore == '') ? '' : 'Android Play Store: ' + DevicePrefrence.downloadLink_playStore + '\n\n') + ((DevicePrefrence.downloadLink_cafeBazar == '') ? '' : 'کافه بازار: ' + DevicePrefrence.downloadLink_cafeBazar + '\n\n') + ((DevicePrefrence.downloadLink_myketStore == '') ? '' : 'مایکت: ' + DevicePrefrence.downloadLink_myketStore); else sharedString = str + '\n\n' + downloadLinkLable; - trace("•distriqt• sharedString : " + sharedString); + SaffronLogger.log("•distriqt• sharedString : " + sharedString); if (isSupports()) { var options:* = new shareOptionClass(); options.title = "Share with ..."; options.showOpenIn = true; - trace("•distriqt• Call the share function"); - shareClass.service.share(sharedString, imageBirmapData, '', options); + SaffronLogger.log("•distriqt• Call the share function"); + if(filePath=="") + shareClass.service.share(sharedString, imageBirmapData, '', options); + else + shareClass.service.shareFile( filePath, str, mimeType ); } else { - trace("•distriqt• Share is not support here"); + SaffronLogger.log("•distriqt• Share is not support here"); } } @@ -98,10 +103,10 @@ _isClassesLoaded = true; } } catch (e) { - trace('Add \n\n\tcom.distriqt.Share\n\tcom.distriqt.Core\n\n to your project xmls'); // and below permitions to the tag : \n\n\n\n\t\n\n\n\n\t\n\n'; + SaffronLogger.log('Add \n\n\tcom.distriqt.Share\n\tcom.distriqt.Core\n\n to your project xmls'); // and below permitions to the tag : \n\n\n\n\t\n\n\n\n\t\n\n'; } try { - trace("•distriqt• Set the Share key : " + APP_KEY); + SaffronLogger.log("•distriqt• Set the Share key : " + APP_KEY); (getDefinitionByName("com.distriqt.extension.core.Core") as Object).init(APP_KEY); (shareClass as Object).init(APP_KEY); @@ -113,10 +118,10 @@ if (shareClass.isSupported) { // Functionality here - trace("•distriqt• Share is support"); + SaffronLogger.log("•distriqt• Share is support"); _isSupports = true; } else { - trace("•distriqt• Share is not supports"); + SaffronLogger.log("•distriqt• Share is not supports"); _isSupports = false; } @@ -129,13 +134,18 @@ packagedAssets.copyTo( accessibleAssets, true );*/ } catch (e:Error) { // Check if your APP_KEY is correct - trace("The district app id is wrong!! get a new one for this id (" + DevicePrefrence.appID + ") from : airnativeextensions.com/user/2299/applications\n\n\n" + e); + SaffronLogger.log("The district app id is wrong!! get a new one for this id (" + DevicePrefrence.appID + ") from : airnativeextensions.com/user/2299/applications\n\n\n" + e); _isSupports = false; } } private function share_shareHandler(event:*):void { - trace(event.type + "::" + event.activityType + "::" + event.error); + SaffronLogger.log(event.type + "::" + event.activityType + "::" + event.error); + if(event.type=="share:closed" || event.type=="share:complete") + { + this.dispatchEvent(new Event(Event.COMPLETE)) + } + } /*public function openApp(PackageName:String,Url:URLVariables) @@ -210,7 +220,7 @@ * */ public function openIntent(intentAddress:String, extras:Object = null, onResult:Function = null):* { if (IntentClass == null) { - trace("********************\nopenIntent Error!!!\n You should call the setUp method first"); + SaffronLogger.log("********************\nopenIntent Error!!!\n You should call the setUp method first"); return false; } diff --git a/nativeClasses/advert/AdvertsDistriqt.as b/nativeClasses/advert/AdvertsDistriqt.as index dc9219c1..ecf194a0 100644 --- a/nativeClasses/advert/AdvertsDistriqt.as +++ b/nativeClasses/advert/AdvertsDistriqt.as @@ -84,12 +84,12 @@ { (GoogleApiAvailabilityClass as Object).instance.showErrorDialog(result); } else { - trace("Google Play Services aren't available on this device"); + SaffronLogger.log("Google Play Services aren't available on this device"); } } else { - trace("Google Play Services are Available"); + SaffronLogger.log("Google Play Services are Available"); } if (DevicePrefrence.isAndroid() && ANDROID_ACCOUNT_ID!=null) @@ -120,7 +120,7 @@ init(); if(!isSupported()) { - trace("AdMob is not supported here"); + SaffronLogger.log("AdMob is not supported here"); return ; } if(satUp==false) @@ -216,7 +216,7 @@ function errorHandler( event:* ):void { // Load error occurred. The errorCode will contain more information - trace( "Error" + event.errorCode ); + SaffronLogger.log( "Error" + event.errorCode ); } adView.load( (new AdRequestBuilderClass() as Object).build() ); } @@ -236,7 +236,7 @@ init(); if(!isSupported()) { - trace("AdMob is not supported here"); + SaffronLogger.log("AdMob is not supported here"); return ; } if(satUp==false) @@ -269,7 +269,7 @@ } else { - trace("interstitials is not supported"); + SaffronLogger.log("interstitials is not supported"); } } @@ -289,7 +289,7 @@ { // Load error occurred. The errorCode will contain more information anInterstitialBannerWaitingToShow = false ; - trace( "Error" + event.errorCode ); + SaffronLogger.log( "Error" + event.errorCode ); } } } \ No newline at end of file diff --git a/nativeClasses/cameraUI/DistriqtCameraUI.as b/nativeClasses/cameraUI/DistriqtCameraUI.as index 02a1732f..ec5ccae0 100644 --- a/nativeClasses/cameraUI/DistriqtCameraUI.as +++ b/nativeClasses/cameraUI/DistriqtCameraUI.as @@ -38,7 +38,7 @@ package nativeClasses.cameraUI { if(!isSupport()) { - trace("* Distriqt classes are not working here."); + SaffronLogger.log("* Distriqt classes are not working here."); return ; } try @@ -46,12 +46,12 @@ package nativeClasses.cameraUI //(CameraUIC as Object).init( APPLICATION_KEY ); if (CameraUIC.isSupported) { - trace("******** Distriqt is sat up *********"); + SaffronLogger.log("******** Distriqt is sat up *********"); } } catch (e:Error) { - trace( "*** Distriqt camera UI not support : "+e ); + SaffronLogger.log( "*** Distriqt camera UI not support : "+e ); } } @@ -104,22 +104,22 @@ package nativeClasses.cameraUI { case (AuthorisationStatusC as Object).SHOULD_EXPLAIN: case (AuthorisationStatusC as Object).NOT_DETERMINED: - trace("** REQUEST ACCESS: This will display the permission dialog **"); + SaffronLogger.log("** REQUEST ACCESS: This will display the permission dialog **"); (CameraUIC as Object).service.requestAuthorisation(); return; case (AuthorisationStatusC as Object).DENIED: case (AuthorisationStatusC as Object).UNKNOWN: case (AuthorisationStatusC as Object).RESTRICTED: - trace("** ACCESS DENIED: You should inform your user appropriately **") + SaffronLogger.log("** ACCESS DENIED: You should inform your user appropriately **") return; case (AuthorisationStatusC as Object).AUTHORISED: - trace("** AUTHORISED: Camera will be available **"); + SaffronLogger.log("** AUTHORISED: Camera will be available **"); break; } - trace("** Distriqt camera ui : (CameraUIC as Object).service.requestAuthorisation(); "); + SaffronLogger.log("** Distriqt camera ui : (CameraUIC as Object).service.requestAuthorisation(); "); (CameraUIC as Object).service.requestAuthorisation(); } @@ -127,7 +127,7 @@ package nativeClasses.cameraUI /**AuthorisationEvent*/ private static function startCapture( event:* ):void { - trace( "(AuthorisationStatusC as Object)_changedHandler: "+event ); + SaffronLogger.log( "(AuthorisationStatusC as Object)_changedHandler: "+event ); (CameraUIC as Object).service.addEventListener( (CameraUIEventC as Object).COMPLETE, cameraUI_completeHandler ); (CameraUIC as Object).service.addEventListener( (CameraUIEventC as Object).CANCEL, cameraUI_cancelHandler ); @@ -135,7 +135,7 @@ package nativeClasses.cameraUI options.saveToCameraRollQuality = (DevicePrefrence.isAndroid())?0:1 ; options.videoQuality = (QualityTypeC as Object).TYPE_LOW; options.videoMaximumDuration = VideoMaxiDuration ; - trace("Launch the camera"); + SaffronLogger.log("Launch the camera"); (CameraUIC as Object).service.launch( (MediaTypeC as Object).VIDEO, options ); } @@ -144,11 +144,11 @@ package nativeClasses.cameraUI /**Video loaded event:CameraUIEventC*/ private static function cameraUI_completeHandler( event:* ):void { - trace("** camera closed **"); + SaffronLogger.log("** camera closed **"); (CameraUIC as Object).service.removeEventListener( (CameraUIEventC as Object).COMPLETE, cameraUI_completeHandler ); (CameraUIC as Object).service.removeEventListener( (CameraUIEventC as Object).CANCEL, cameraUI_cancelHandler ); fileByte = FileManager.loadFile(new File(event.path)); - trace("*** The file size is : "+fileByte.length); + SaffronLogger.log("*** The file size is : "+fileByte.length); onDone(); } @@ -157,7 +157,7 @@ package nativeClasses.cameraUI { (CameraUIC as Object).service.removeEventListener( (CameraUIEventC as Object).COMPLETE, cameraUI_completeHandler ); (CameraUIC as Object).service.removeEventListener( (CameraUIEventC as Object).CANCEL, cameraUI_cancelHandler ); - trace( "user cancel" ); + SaffronLogger.log( "user cancel" ); } public static function isSupport():Boolean diff --git a/nativeClasses/deviceUtils/DigitalStrawberryDeviceUtils.as b/nativeClasses/deviceUtils/DigitalStrawberryDeviceUtils.as index ba9e3629..efbf35d7 100644 --- a/nativeClasses/deviceUtils/DigitalStrawberryDeviceUtils.as +++ b/nativeClasses/deviceUtils/DigitalStrawberryDeviceUtils.as @@ -22,7 +22,7 @@ package nativeClasses.deviceUtils { try { DeviceUtilsClass = getDefinitionByName("com.digitalstrawberry.ane.deviceutils.DeviceUtils") as Class; } catch (e) { - trace('Add \n\n\tcom.digitalstrawberry.ane.deviceUtils\n\n to your project xmls'); + SaffronLogger.log('Add \n\n\tcom.digitalstrawberry.ane.deviceUtils\n\n to your project xmls'); } } } diff --git a/nativeClasses/distriqtAudioPlayer/DistriqtAudioPlayer.as b/nativeClasses/distriqtAudioPlayer/DistriqtAudioPlayer.as new file mode 100644 index 00000000..57f8b305 --- /dev/null +++ b/nativeClasses/distriqtAudioPlayer/DistriqtAudioPlayer.as @@ -0,0 +1,185 @@ +package nativeClasses.distriqtAudioPlayer { + + + import flash.net.NetConnection; + import flash.net.NetStream; + import flash.events.NetStatusEvent; + import flash.desktop.NativeApplication; + import flash.events.Event; + + public class DistriqtAudioPlayer { + + /**com.distriqt.extension.mediaplayer.audio.AudioPlayer */ + private static var AudioPlayerClass:Class; + /**com.distriqt.extension.mediaplayer.MediaPlayer */ + private static var MediaPlayerClass:Class; + /**com.distriqt.extension.mediaplayer.audio.AudioPlayerOptions */ + private static var AudioPlayerOptionsClass:Class; + /**com.distriqt.extension.mediaplayer.events.AudioPlayerEvent */ + private static var AudioPlayerEventClass:Class; + /**com.distriqt.extension.mediaplayer.events.MediaErrorEvent */ + private static var MediaErrorEventClass:Class; + + private static var player:* ; + + private static var _nc:NetConnection = null; + private static var _ns:NetStream = null; + + private static var myId:uint ; + + private static var onStoppedFunc:Function ; + + private static var isPlaying:Boolean = false ; + + public static function currentPlayinID():uint + { + return myId ; + } + + public static function setUp():void + { + + if(player==null) + { + if(DevicePrefrence.isPC()) + { + _nc = new NetConnection(); + _nc.connect(null); + _ns = new NetStream( _nc ); + _ns.removeEventListener(NetStatusEvent.NET_STATUS,statusChanged); + _ns.addEventListener(NetStatusEvent.NET_STATUS,statusChanged); + _ns.client = new Object(); + } + else + { + AudioPlayerClass = Obj.generateClass('com.distriqt.extension.mediaplayer.audio.AudioPlayer'); + MediaPlayerClass = Obj.generateClass('com.distriqt.extension.mediaplayer.MediaPlayer'); + AudioPlayerOptionsClass = Obj.generateClass('com.distriqt.extension.mediaplayer.audio.AudioPlayerOptions'); + AudioPlayerEventClass = Obj.generateClass('com.distriqt.extension.mediaplayer.events.AudioPlayerEvent'); + MediaErrorEventClass = Obj.generateClass('com.distriqt.extension.mediaplayer.events.MediaErrorEvent'); + + trace("AudioPlayerClass : "+AudioPlayerClass); + trace("MediaPlayerClass : "+MediaPlayerClass); + trace("AudioPlayerOptionsClass : "+AudioPlayerOptionsClass); + trace("AudioPlayerEventClass : "+AudioPlayerEventClass); + trace("MediaErrorEventClass : "+MediaErrorEventClass); + if(AudioPlayerClass==null)return; + var options:* = new AudioPlayerOptionsClass(); + (options).enableBackgroundAudio(false); + player = (MediaPlayerClass as Object).service.createAudioPlayer(); + player.addEventListener( (AudioPlayerEventClass as Object).PLAYING, audioPlayer_played ); + player.addEventListener( (AudioPlayerEventClass as Object).COMPLETE, audioPlayer_completeHandler ); + player.addEventListener( (MediaErrorEventClass as Object).ERROR, audioPlayer_errorHandler ); + } + + NativeApplication.nativeApplication.addEventListener(Event.DEACTIVATE,pausePlayingSound); + NativeApplication.nativeApplication.addEventListener(Event.ACTIVATE,playPausedSound); + } + } + + + + private static function statusChanged(e:NetStatusEvent):void + { + trace("Net status "+e.info.code); + switch(e.info.code) + { + case "NetStream.Play.Stop": + trace("Playing finished"); + triggerStop(); + break; + case "NetStream.Play.Start": + trace("Playing started"); + audioPlayer_played() ; + break; + } + } + + private static function audioPlayer_played(e:*=null):void + { + isPlaying = true ; + } + + private static function audioPlayer_errorHandler(e:*):void + { + trace("Adress error : "+e) + } + + private static function audioPlayer_completeHandler(event:*):void + { + trace("Sound completed"); + triggerStop(); + } + + private static function triggerStop():void + { + trace("Trigger stop"); + isPlaying = false ; + var cashedStop:Function = onStoppedFunc ; + onStoppedFunc = null ; + if(cashedStop!=null)cashedStop(); + } + + public static function stop():void + { + setUp(); + if(DevicePrefrence.isPC()) + { + _ns.close(); + } + else + { + player.stop(); + } + trace("Stop funcitn called") + triggerStop(); + } + + + public static function play(soundPathURL:String,onStopped:Function=null):uint + { + setUp(); + trace("Play function called") + triggerStop(); + if(DevicePrefrence.isPC()) + { + _ns.play( soundPathURL ); + } + else + { + if(AudioPlayerClass==null)return 0; + //setTimeout(player.loadFile,0,new File(soundPathURL)); + trace("player : "+player+" << "+soundPathURL); + player.load(soundPathURL); + player.play(); + } + + onStoppedFunc = onStopped ; + + myId++; + return myId ; + } + + private static function pausePlayingSound(event:Event):void + { + if(isPlaying) + { + if(player!=null) + player.pause(); + else + _ns.pause(); + } + } + + private static function playPausedSound(event:Event):void + { + if(isPlaying) + { + if(player!=null) + player.play(); + else + _ns.resume(); + } + } + } +} diff --git a/nativeClasses/distriqtAudioPlayer/DistriqtAudioPlayerUI.as b/nativeClasses/distriqtAudioPlayer/DistriqtAudioPlayerUI.as new file mode 100644 index 00000000..76050174 --- /dev/null +++ b/nativeClasses/distriqtAudioPlayer/DistriqtAudioPlayerUI.as @@ -0,0 +1,260 @@ +package nativeClasses.distriqtAudioPlayer +//nativeClasses.distriqtAudioPlayer.DistriqtAudioPlayerUI +{ + + import flash.display.MovieClip; + import appManager.displayContentElemets.TitleText; + import flash.events.Event; + import flash.events.MouseEvent; + + public class DistriqtAudioPlayerUI extends MovieClip + { + /**com.distriqt.extension.mediaplayer.audio.AudioPlayer */ + private var AudioPlayerClass:Class; + /**com.distriqt.extension.mediaplayer.MediaPlayer */ + private var MediaPlayerClass:Class; + /**com.distriqt.extension.mediaplayer.audio.AudioPlayerOptions */ + private var AudioPlayerOptionsClass:Class; + /**com.distriqt.extension.mediaplayer.events.AudioPlayerEvent */ + private var AudioPlayerEventClass:Class; + /**com.distriqt.extension.mediaplayer.events.MediaErrorEvent */ + private var MediaErrorEventClass:Class; + + private var player:* ; + + + private var lineMC:MovieClip, + cursolMC:MovieClip ; + + private var seekAreaMC:MovieClip ; + + private var pauseMC:MovieClip, + playMC:MovieClip; + + private var currentPositionTF:TitleText, + titleTF:TitleText, + durationTF:TitleText; + + private var lastPosition:Number,lastDuration:Number ; + + private static var ME:DistriqtAudioPlayerUI ; + + private var seekPermission:Boolean = false ; + + private var speedMC:MovieClip ; + + private var closeMC:MovieClip ; + + private var hidden:Boolean = true ; + + public function DistriqtAudioPlayerUI() + { + super(); + + lineMC = Obj.get("line_mc",this); + lineMC.mouseChildren = lineMC.mouseEnabled = false ; + cursolMC = Obj.get("cursol_mc",this); + cursolMC.mouseChildren = cursolMC.mouseEnabled = false ; + pauseMC = Obj.get("pause_mc",this); + Obj.setButton(pauseMC,pauseCurrentSound); + playMC = Obj.get("play_mc",this); + Obj.setButton(playMC,startPlayingCurrentSound); + currentPositionTF = Obj.get("current_time_mc",this); + titleTF = Obj.get("title_mc",this); + durationTF = Obj.get("total_tile_mc",this); + speedMC = Obj.get("speed_mc",this); + speedMC.gotoAndStop(1); + Obj.setButton(speedMC,speedUp); + seekAreaMC = Obj.get("seek_area_mc",this); + + closeMC = Obj.get("close_mc",this); + Obj.setButton(closeMC,hide); + + pauseMC.visible = false ; + + this.addEventListener(Event.ENTER_FRAME,controlCursol); + this.addEventListener(Event.REMOVED_FROM_STAGE,unLoad); + + seekAreaMC.addEventListener(MouseEvent.MOUSE_DOWN,permissionToSeek); + + ME = this ; + + setUp(); + + hide(); + } + + private function hide():void + { + hidden = true ; + pauseCurrentSound(); + } + + private function show():void + { + hidden = false ; + } + + public static function playSound(soundURL:String,title:String=''):void + { + if(ME!=null) + { + ME.playSound(soundURL,title); + } + } + + private function speedUp():void + { + if(speedMC.currentFrame==1) + { + speedMC.gotoAndStop(2); + player.setPlaybackSpeed(2); + } + else + { + speedMC.gotoAndStop(1); + player.setPlaybackSpeed(1); + } + } + + private function permissionToSeek(e:MouseEvent):void + { + seekPermission = true ; + stage.addEventListener(MouseEvent.MOUSE_UP,removeSeekPermission); + } + + private function removeSeekPermission(e:MouseEvent):void + { + seekPermission = false ; + stage.removeEventListener(MouseEvent.MOUSE_UP,removeSeekPermission); + } + + + private function pauseCurrentSound():void + { + setUp(); + if(player)player.pause(); + } + + private function startPlayingCurrentSound():void + { + setUp(); + if(player)player.play(); + } + + private function unLoad(e:Event):void + { + this.removeEventListener(Event.ENTER_FRAME,controlCursol); + this.removeEventListener(Event.REMOVED_FROM_STAGE,unLoad); + + ME = null ; + } + + private function controlCursol(e:Event):void + { + + if(hidden) + { + this.prevFrame(); + if(this.currentFrame == 1) + this.visible = false ; + } + else + { + this.nextFrame(); + this.visible = true ; + } + if(player==null)return; + if(seekPermission) + { + if(this.mouseXlineMC.x) + { + var seekTo:Number = player.duration*(this.mouseX-lineMC.x)/lineMC.width ; + trace("seekTo : "+seekTo); + player.seek(seekTo); + } + } + + if(player==null)return; + if(lastPosition != player.position) + { + currentPositionTF.setUp(TimeToString.timeInString(player.position),false,false,1); + } + if(lastDuration != player.duration) + { + durationTF.setUp(TimeToString.timeInString(player.duration),false,false,1); + } + lastPosition = player.position ; + lastDuration = player.duration ; + + cursolMC.x = lineMC.x + lineMC.width*(player.duration!=0?(player.position/player.duration):0) ; + } + + public function playSound(soundPathURL:String,title:String=''):void + { + show(); + setUp(); + trace("Play function called") + if(AudioPlayerClass==null)return; + trace("player : "+player+" << "+soundPathURL); + player.load(soundPathURL); + player.play(); + titleTF.text = title ; + } + + public function setUp():void + { + + if(player==null) + { + AudioPlayerClass = Obj.generateClass('com.distriqt.extension.mediaplayer.audio.AudioPlayer'); + MediaPlayerClass = Obj.generateClass('com.distriqt.extension.mediaplayer.MediaPlayer'); + AudioPlayerOptionsClass = Obj.generateClass('com.distriqt.extension.mediaplayer.audio.AudioPlayerOptions'); + AudioPlayerEventClass = Obj.generateClass('com.distriqt.extension.mediaplayer.events.AudioPlayerEvent'); + MediaErrorEventClass = Obj.generateClass('com.distriqt.extension.mediaplayer.events.MediaErrorEvent'); + + trace("AudioPlayerClass : "+AudioPlayerClass); + trace("MediaPlayerClass : "+MediaPlayerClass); + trace("AudioPlayerOptionsClass : "+AudioPlayerOptionsClass); + trace("AudioPlayerEventClass : "+AudioPlayerEventClass); + trace("MediaErrorEventClass : "+MediaErrorEventClass); + if(AudioPlayerClass==null)return; + var options:* = new AudioPlayerOptionsClass(); + (options).enableBackgroundAudio(true); + options.enablePlaybackSpeed(true); + player = (MediaPlayerClass).service.createAudioPlayer(); + player.addEventListener( (AudioPlayerEventClass as Object).PLAYING, audioPlayer_played ); + player.addEventListener( (AudioPlayerEventClass as Object).PAUSED, audioPlayer_completeHandler ); + player.addEventListener( (AudioPlayerEventClass as Object).COMPLETE, audioPlayer_completeHandler ); + player.addEventListener( (MediaErrorEventClass as Object).ERROR, audioPlayer_errorHandler ); + } + } + + private function audioPlayer_played(e:*=null):void + { + pauseMC.visible = true ; + playMC.visible = false ; + } + + private function audioPlayer_errorHandler(e:*):void + { + pauseMC.visible = false ; + playMC.visible = true ; + } + + private function audioPlayer_completeHandler(event:*):void + { + pauseMC.visible = false ; + playMC.visible = true ; + speedMC.gotoAndStop(1); + player.setPlaybackSpeed(1); + } + + private function audioPlayer_paused(event:*):void + { + pauseMC.visible = false ; + playMC.visible = true ; + } + + } +} diff --git a/nativeClasses/distriqtAudioPlayer/DistriqtRecorder.as b/nativeClasses/distriqtAudioPlayer/DistriqtRecorder.as index 403c570f..caed0376 100644 --- a/nativeClasses/distriqtAudioPlayer/DistriqtRecorder.as +++ b/nativeClasses/distriqtAudioPlayer/DistriqtRecorder.as @@ -4,7 +4,6 @@ import flash.utils.clearTimeout; import flash.utils.getDefinitionByName; import flash.utils.setTimeout; - import contents.alert.SaffronLogger; public class DistriqtRecorder { public static var _file:File; @@ -32,43 +31,48 @@ AudioRecorderOptionsClass = getDefinitionByName("com.distriqt.extension.audiorecorder.AudioRecorderOptions") as Class; AuthorisationStatusClass = getDefinitionByName("com.distriqt.extension.audiorecorder.AuthorisationStatus") as Class; AuthorisationEventClass = getDefinitionByName("com.distriqt.extension.audiorecorder.events.AuthorisationEvent") as Class; - trace("\n\n\n\n\n\n\n*************************** Distriqt recorder is supports ****************************\n\n\n\n\n\n\n"); + SaffronLogger.log("\n\n\n\n\n\n\n*************************** Distriqt recorder is supports ****************************\n\n\n\n\n\n\n"); if (logger) SaffronLogger.log("\n\n\n\n\n\n\n*************************** Distriqt recorder is supports ****************************\n\n\n\n\n\n\n"); } catch (e) { AudioRecorderClass = null; AudioRecorderOptionsClass = null; AuthorisationStatusClass = null; - trace("\n\n\n\n\n\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Distriqt recorder is NOT supports !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n\n\n\n\n"); + SaffronLogger.log("\n\n\n\n\n\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Distriqt recorder is NOT supports !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n\n\n\n\n"); if (logger) SaffronLogger.log("\n\n\n\n\n\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Distriqt recorder is NOT supports !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n\n\n\n\n"); return false; } + return getPerrmission(); + } + + /**Return true if the permission is already granted, but you can wait till callback function calls when permission granted */ + public static function getPerrmission(onPermissinGranted:Function=null):Boolean + { switch (AudioRecorderClass.service.authorisationStatus()) { case AuthorisationStatusClass.AUTHORISED: - trace("authorised"); - if (logger) - SaffronLogger.log("authorised"); + if(onPermissinGranted!=null)onPermissinGranted(); + return true ; break; case AuthorisationStatusClass.SHOULD_EXPLAIN: case AuthorisationStatusClass.NOT_DETERMINED: - AudioRecorderClass.service.addEventListener(AuthorisationEventClass.CHANGED, authChangedHandler); + AudioRecorderClass.service.addEventListener(AuthorisationEventClass.CHANGED, permissionChanged); AudioRecorderClass.service.requestAuthorisation(); break; case AuthorisationStatusClass.DENIED: case AuthorisationStatusClass.RESTRICTED: case AuthorisationStatusClass.UNKNOWN: - trace("denied or restricted"); - if (logger) - SaffronLogger.log("denied or restricted"); + return false ; } - return true; - } + return false ; - private static function authChangedHandler(event:*):void { - trace("authChangedHandler( " + event.status + " )"); + function permissionChanged(event:*):void { + AudioRecorderClass.service.removeEventListener(AuthorisationEventClass.CHANGED, permissionChanged); + SaffronLogger.log("authChangedHandler( " + event.status + " )"); + if(onPermissinGranted!=null)onPermissinGranted(); + } } /**Start recording.*/ @@ -83,7 +87,7 @@ } else { _file = whereToSave; } - trace("save on : " + _file.nativePath); + SaffronLogger.log("save on : " + _file.nativePath); if (logger) SaffronLogger.log("save on : " + _file.nativePath); @@ -98,14 +102,14 @@ var success:Boolean = AudioRecorderClass.service.start(options) as Boolean; - trace("start(): " + success); + SaffronLogger.log("start(): " + success); if (logger) SaffronLogger.log("start(): " + success); return success; } else { - trace("Not authorised for start"); + SaffronLogger.log("Not authorised for start"); if (logger) SaffronLogger.log("Not authorised for start"); } @@ -120,14 +124,14 @@ clearTimeout(timeoutId); if (AudioRecorderClass.service.hasAuthorisation()) { var success:Boolean = AudioRecorderClass.service.stop() as Boolean; - trace("stop(): " + success); + SaffronLogger.log("stop(): " + success); // AudioRecorderClass.service.removeEventListener( AudioRecorderEvent.START, audioRecorderEventHandler ); // AudioRecorderClass.service.removeEventListener( AudioRecorderEvent.COMPLETE, audioRecorderEventHandler ); // AudioRecorderClass.service.removeEventListener( AudioRecorderEvent.PROGRESS, audioRecorderEventHandler ); return success; } else { - trace("Not authorised for stop"); + SaffronLogger.log("Not authorised for stop"); if (logger) SaffronLogger.log("Not authorised for stop"); } diff --git a/nativeClasses/distriqtLocalAuth/DistriqtFingerPrint.as b/nativeClasses/distriqtLocalAuth/DistriqtFingerPrint.as index 788679ae..98c5ba1c 100644 --- a/nativeClasses/distriqtLocalAuth/DistriqtFingerPrint.as +++ b/nativeClasses/distriqtLocalAuth/DistriqtFingerPrint.as @@ -1,4 +1,4 @@ -package nativeClasses.distriqtLocalAuth +package nativeClasses.distriqtLocalAuth { import dataManager.GlobalStorage; @@ -60,7 +60,7 @@ package nativeClasses.distriqtLocalAuth { setUp(); var loadedPass:String = loadPass(); - if (isPasswordSaved && isSupported()) + if (isPasswordSaved() && isSupported()) { (LocalAuthClass as Object).service.addEventListener( (LocalAuthEventClass as Object).AUTH_SUCCESS, authSuccessHandler ); (LocalAuthClass as Object).service.addEventListener( (LocalAuthEventClass as Object).AUTH_FAILED, authFailedHandler ); diff --git a/nativeClasses/distriqtScanner/BarcodeScanner.as b/nativeClasses/distriqtScanner/BarcodeScanner.as index 437d75d9..957da168 100644 --- a/nativeClasses/distriqtScanner/BarcodeScanner.as +++ b/nativeClasses/distriqtScanner/BarcodeScanner.as @@ -24,12 +24,12 @@ package nativeClasses.distriqtScanner Scanner.init(distriqtId); if (Scanner.isSupported) { - trace("Distriqt Scanner supports"); + SaffronLogger.log("Distriqt Scanner supports"); } } catch (e:Error) { - trace( "District Scanner unsupport" ); + SaffronLogger.log( "District Scanner unsupport" ); } } @@ -43,39 +43,39 @@ package nativeClasses.distriqtScanner if(onScanned.length==0) { - trace("********* You should receive a paramerer throw your onScanned *********"); + SaffronLogger.log("********* You should receive a paramerer throw your onScanned *********"); } if (Scanner.isSupported) { - trace( "Scanner Authorisation Status: " + Scanner.service.authorisationStatus() ); + SaffronLogger.log( "Scanner Authorisation Status: " + Scanner.service.authorisationStatus() ); Scanner.service.addEventListener( AuthorisationEvent.CHANGED, authorisationChangedHandler ); switch (Scanner.service.authorisationStatus()) { case AuthorisationStatus.NOT_DETERMINED: case AuthorisationStatus.SHOULD_EXPLAIN: - trace( " REQUEST ACCESS: This will display the permission dialog"); + SaffronLogger.log( " REQUEST ACCESS: This will display the permission dialog"); Scanner.service.requestAccess(); return; case AuthorisationStatus.DENIED: case AuthorisationStatus.UNKNOWN: case AuthorisationStatus.RESTRICTED: - trace( "ACCESS DENIED: You should inform your user appropriately"); + SaffronLogger.log( "ACCESS DENIED: You should inform your user appropriately"); return; case AuthorisationStatus.AUTHORISED: - trace( "AUTHORISED: Scanner will be available"); + SaffronLogger.log( "AUTHORISED: Scanner will be available"); break; } - trace("I'm ready for your test"); + SaffronLogger.log("I'm ready for your test"); startScanning(); } else { - trace("I'm not supporting your device"); + SaffronLogger.log("I'm not supporting your device"); } } @@ -85,17 +85,17 @@ package nativeClasses.distriqtScanner switch (event.status) { case AuthorisationStatus.SHOULD_EXPLAIN: - trace("Should display a reason you need this feature"); + SaffronLogger.log("Should display a reason you need this feature"); break; case AuthorisationStatus.AUTHORISED: - trace("AUTHORISED: Camera will be available"); + SaffronLogger.log("AUTHORISED: Camera will be available"); startScanning(); break; case AuthorisationStatus.RESTRICTED: case AuthorisationStatus.DENIED: - trace("ACCESS DENIED: You should inform your user appropriately"); + SaffronLogger.log("ACCESS DENIED: You should inform your user appropriately"); break; } } @@ -117,12 +117,12 @@ package nativeClasses.distriqtScanner protected function backToHome(event:Event):void { - trace("Scanner oppened"); + SaffronLogger.log("Scanner oppened"); } private function codeFoundHandler( event:ScannerEvent ):void { - trace("Data scanned : "+event.data); + SaffronLogger.log("Data scanned : "+event.data); lastScannedCode = event.data ; if(OnScan.length>0) { diff --git a/nativeClasses/inappPurches/bazar/BazarInApp.as b/nativeClasses/inappPurches/bazar/BazarInApp.as index 951af279..d9384f6e 100644 --- a/nativeClasses/inappPurches/bazar/BazarInApp.as +++ b/nativeClasses/inappPurches/bazar/BazarInApp.as @@ -93,7 +93,7 @@ package nativeClasses.inappPurches.bazar { throw "Controll the isSupport() function first." } - trace("[[[[[[[[[CAFE BAZAR]]]]]]]]]]"); + SaffronLogger.log("[[[[[[[[[CAFE BAZAR]]]]]]]]]]"); if(_iap==null) { _iap = new InAppPurchaseClass(); @@ -107,14 +107,14 @@ package nativeClasses.inappPurches.bazar canselAllListeners(); if(!bazarInit) { - trace("***connect to bazar..."); + SaffronLogger.log("***connect to bazar..."); _iap.addEventListener(InAppPurchaseEventClass.INIT_SUCCESS, onInitSuccess); _iap.addEventListener(InAppPurchaseEventClass.INIT_ERROR, onInitError); _iap.init(key); } else { - trace( "InAppBilling supported" ); + SaffronLogger.log( "InAppBilling supported" ); purchessItem(); } } @@ -122,7 +122,7 @@ package nativeClasses.inappPurches.bazar protected static function onInitSuccess(event:*):void { bazarInit = true ; - trace( "InAppBilling supported2" ); + SaffronLogger.log( "InAppBilling supported2" ); canselAllListeners(); purchessItem(); @@ -131,7 +131,7 @@ package nativeClasses.inappPurches.bazar /**Now purchess my item*/ private static function purchessItem():void { - trace("****Buy this item : "+CurrentProdId); + SaffronLogger.log("****Buy this item : "+CurrentProdId); canselAllListeners(); _iap.addEventListener(InAppPurchaseEventClass.PURCHASE_SUCCESS, onPurchaseSuccess); _iap.addEventListener(InAppPurchaseEventClass.PURCHASE_ERROR, onPurchaseError); @@ -141,7 +141,7 @@ package nativeClasses.inappPurches.bazar protected static function onPurchaseError(event:Event):void { canselAllListeners(); - trace("-----Purchase fails"); + SaffronLogger.log("-----Purchase fails"); onCanseled(); } @@ -149,7 +149,7 @@ package nativeClasses.inappPurches.bazar protected static function onPurchaseSuccess(event:*):void { canselAllListeners(); - trace("-----Purchase done: ["+event.data+"] ... consume it"); + SaffronLogger.log("-----Purchase done: ["+event.data+"] ... consume it"); //onDone(); consumeProduct(CurrentProdId,onDone,onCanseled); } @@ -157,8 +157,8 @@ package nativeClasses.inappPurches.bazar protected static function onInitError(event:*):void { canselAllListeners(); - trace( "!!!!!!!!InAppBilling not supported" ); - trace(event.data); //trace error message + SaffronLogger.log( "!!!!!!!!InAppBilling not supported" ); + SaffronLogger.log(event.data); //trace error message onCanseled(); } @@ -170,7 +170,7 @@ package nativeClasses.inappPurches.bazar onCanseled = onFaildToConsume; CurrentProdId = producID ; - trace("*** Restore server to consume") + SaffronLogger.log("*** Restore server to consume") canselAllListeners(); _iap.addEventListener(InAppPurchaseEventClass.RESTORE_SUCCESS, onRestoreConsumeSuccess); _iap.addEventListener(InAppPurchaseEventClass.RESTORE_ERROR, onRestoreConsumeError); @@ -180,13 +180,13 @@ package nativeClasses.inappPurches.bazar protected static function onRestoreConsumeError(event:*):void { canselAllListeners(); - trace( "restoreConsome Failed" ); + SaffronLogger.log( "restoreConsome Failed" ); onCanseled(); } protected static function onRestoreConsumeSuccess(event:*) { - trace("**** request to consume product : "+CurrentProdId); + SaffronLogger.log("**** request to consume product : "+CurrentProdId); lastShopedItemDetail = _iap.getPurchaseDetails(CurrentProdId); if(lastShopedItemDetail != null ){ @@ -224,7 +224,7 @@ package nativeClasses.inappPurches.bazar protected static function onConsumeSuccess(event:*):void { canselAllListeners(); - trace("Consume Success"); + SaffronLogger.log("Consume Success"); var purchaseTocken:String ; if(lastShopedItemDetail!=null) { @@ -242,7 +242,7 @@ package nativeClasses.inappPurches.bazar protected static function onConsumeError(event:*):void { canselAllListeners(); - trace("Consume Failed"); + SaffronLogger.log("Consume Failed"); onCanseled(); } diff --git a/nativeClasses/localNotification/DistriqtLocalNotification.as b/nativeClasses/localNotification/DistriqtLocalNotification.as index eef40af5..7c2eb0f3 100644 --- a/nativeClasses/localNotification/DistriqtLocalNotification.as +++ b/nativeClasses/localNotification/DistriqtLocalNotification.as @@ -1,15 +1,5 @@ -package nativeClasses.localNotification +package nativeClasses.localNotification { - import com.distriqt.extension.core.Core; - import com.distriqt.extension.notifications.AuthorisationStatus; - import com.distriqt.extension.notifications.Notifications; - import com.distriqt.extension.notifications.Service; - import com.distriqt.extension.notifications.builders.ActionBuilder; - import com.distriqt.extension.notifications.builders.CategoryBuilder; - import com.distriqt.extension.notifications.builders.ChannelBuilder; - import com.distriqt.extension.notifications.builders.NotificationBuilder; - import com.distriqt.extension.notifications.events.AuthorisationEvent; - import com.distriqt.extension.notifications.events.NotificationEvent; import flash.utils.setInterval; @@ -19,8 +9,29 @@ package nativeClasses.localNotification */ public class DistriqtLocalNotification { + /*import com.distriqt.extension.core.Core;*/ + private static var CoreClass:Class; + /*com.distriqt.extension.notifications.AuthorisationStatus */ + private static var AuthorisationStatusClass:Class; + /**com.distriqt.extension.notifications.Notifications */ + private static var NotificationsClass:Class; + /**com.distriqt.extension.notifications.Service */ + private static var ServiceClass:Class; + /**com.distriqt.extension.notifications.builders.ActionBuilder */ + private static var ActionBuilderClass:Class; + /**com.distriqt.extension.notifications.builders.CategoryBuilder */ + private static var CategoryBuilderClass:Class; + /**com.distriqt.extension.notifications.builders.ChannelBuilder */ + private static var ChannelBuilderClass:Class; + /**com.distriqt.extension.notifications.builders.NotificationBuilder*/ + private static var NotificationBuilderClass:Class; + /**com.distriqt.extension.notifications.events.AuthorisationEvent*/ + private static var AuthorisationEventClass:Class; + /**com.distriqt.extension.notifications.events.NotificationEvent*/ + private static var NotificationEventClass:Class; + public static var showForground:Boolean = false; - private static var service:Service; + private static var service:*; private static var wakeUpIntervalId:uint; private static const resetNotification:uint = 60 * 1000; public static const MessageID:int = 1; @@ -28,90 +39,139 @@ package nativeClasses.localNotification private static var _bodyMessage:String = ""; private static var _titleMessage:String = ""; private static var _vibrateMessage:Boolean; + + private static var _supports:* ; + + private static function init():void + { + if(_supports==null) + { + + CoreClass = Obj.generateClass('com.distriqt.extension.core.Core'); + AuthorisationStatusClass = Obj.generateClass("com.distriqt.extension.notifications.AuthorisationStatus"); + NotificationsClass = Obj.generateClass("com.distriqt.extension.notifications.Notifications"); + ServiceClass = Obj.generateClass("com.distriqt.extension.notifications.Service"); + ActionBuilderClass = Obj.generateClass("com.distriqt.extension.notifications.builders.ActionBuilder"); + CategoryBuilderClass = Obj.generateClass("com.distriqt.extension.notifications.builders.CategoryBuilder"); + ChannelBuilderClass = Obj.generateClass("com.distriqt.extension.notifications.builders.ChannelBuilder"); + NotificationBuilderClass = Obj.generateClass("com.distriqt.extension.notifications.builders.NotificationBuilder"); + AuthorisationEventClass = Obj.generateClass("com.distriqt.extension.notifications.events.AuthorisationEvent"); + NotificationEventClass = Obj.generateClass("com.distriqt.extension.notifications.events.NotificationEvent"); + + trace("CoreClass:"+CoreClass, + "AuthorisationStatusClass:"+AuthorisationStatusClass, + "NotificationsClass:"+NotificationsClass, + "ServiceClass:"+ServiceClass, + "ActionBuilderClass:"+ActionBuilderClass, + "CategoryBuilderClass:"+CategoryBuilderClass, + "ChannelBuilderClass:"+ChannelBuilderClass, + "NotificationBuilderClass:"+NotificationBuilderClass, + "AuthorisationEventClass:"+AuthorisationEventClass, + "NotificationEventClass:"+NotificationEventClass) + + _supports = CoreClass!=null ; + } + } + + public static function isSupported():Boolean + { + init(); + return _supports==true && (NotificationsClass as Object).isSupported; + } + public function DistriqtLocalNotification() { - + super(); + init(); } public static function setUp():void { - Core.init(); + init(); + if(!isSupported()) + { + trace("Localnotifications are not supporting here"); + return; + } + (CoreClass as Object).init(); try { - trace("isSupported = " + Notifications.isSupported); + SaffronLogger.log("isSupported = " + (NotificationsClass as Object).isSupported); + - if (Notifications.isSupported) - { - trace("version notification = " + Notifications.service.version); - Notifications.service.addEventListener(NotificationEvent.NOTIFICATION, notifications_notificationHandler); - Notifications.service.addEventListener(NotificationEvent.NOTIFICATION_SELECTED, notifications_notificationHandler); - Notifications.service.addEventListener(AuthorisationEvent.CHANGED, requestAuthorisation); - - service = new Service(); - - service.categories.push(new CategoryBuilder().setIdentifier("MESSAGE_CATEGORY").addAction(new ActionBuilder().setTitle("OK").setWillLaunchApplication(true).setIdentifier("OPEN_APP_BTN").build()).addAction(new ActionBuilder().setTitle("Cancel").setDestructive(true).setShouldCancelOnAction(true).setIdentifier("CANCEL_APP_BTN").build()).build()); - - service.categories.push(new CategoryBuilder().setIdentifier("OPEN_CATEGORY").addAction(new ActionBuilder().setTitle("Open App").setWillLaunchApplication(true).setIdentifier("OPEN_APP_BTN").setShouldCancelOnAction(true).build()).build()); + + SaffronLogger.log("version notification = " + (NotificationsClass as Object).service.version); + (NotificationsClass as Object).service.addEventListener((NotificationEventClass as Object).NOTIFICATION, notifications_notificationHandler); + (NotificationsClass as Object).service.addEventListener((NotificationEventClass as Object).NOTIFICATION_SELECTED, notifications_notificationHandler); + (NotificationsClass as Object).service.addEventListener((AuthorisationEventClass as Object).CHANGED, requestAuthorisation); + + service = new ServiceClass(); + + service.categories.push(new CategoryBuilderClass().setIdentifier("MESSAGE_CATEGORY").addAction(new ActionBuilderClass().setTitle("OK").setWillLaunchApplication(true).setIdentifier("OPEN_APP_BTN").build()).addAction(new ActionBuilderClass().setTitle("Cancel").setDestructive(true).setShouldCancelOnAction(true).setIdentifier("CANCEL_APP_BTN").build()).build()); + + service.categories.push(new CategoryBuilderClass().setIdentifier("OPEN_CATEGORY").addAction(new ActionBuilderClass().setTitle("Open App").setWillLaunchApplication(true).setIdentifier("OPEN_APP_BTN").setShouldCancelOnAction(true).build()).build()); - service.categories.push(new CategoryBuilder().setIdentifier("PREVENT_SLEEEP").addAction(new ActionBuilder().setTitle("Open").setWillLaunchApplication(true).setIdentifier("OPEN_APP_BTN").build()).build()); - - service.channels.push(new ChannelBuilder().setId(DevicePrefrence.appName + "_channel").setName(DevicePrefrence.appName + " Channel").build()); - - Notifications.service.setup(service); - - requestAuthorisation(); - - trace("Press to send a notification"); - } - else - { - trace("Notifications not supported"); - } + service.categories.push(new CategoryBuilderClass().setIdentifier("PREVENT_SLEEEP").addAction(new ActionBuilderClass().setTitle("Open").setWillLaunchApplication(true).setIdentifier("OPEN_APP_BTN").build()).build()); + + service.channels.push(new ChannelBuilderClass().setId(DevicePrefrence.appName + "_channel").setName(DevicePrefrence.appName + " Channel").build()); + + (NotificationsClass as Object).service.setup(service); + + requestAuthorisation(); + + SaffronLogger.log("Press to send a notification"); + } catch (e:Error) { - trace("ERROR:" + e.message); + SaffronLogger.log("ERROR:" + e.message); } } - private static function notifications_notificationHandler(event:NotificationEvent):void + private static function notifications_notificationHandler(event:*):void { - trace(event.type + "::[" + event.id + "]::" + event.payload); + SaffronLogger.log(event.type + "::[" + event.id + "]::" + event.payload); } public static function cancelNotification(_notificationId:int):void { - if (Notifications.isSupported) + if (isSupported()) { - trace("cancelNotification(): cancel:" + _notificationId); - Notifications.service.cancel(_notificationId); + SaffronLogger.log("cancelNotification(): cancel:" + _notificationId); + (NotificationsClass as Object).service.cancel(_notificationId); } } public static function cancelAllNotifications():void { - if (Notifications.isSupported) + init(); + SaffronLogger.log("cancelNotification(): cancelAll()"); + if (isSupported()) { - trace("cancelNotification(): cancelAll()"); - Notifications.service.cancelAll(); + (NotificationsClass as Object).service.cancelAll(); } } - public static function sendMessage(title:String, body:String,date:Date=null,forground:Boolean=true,vibrate:Boolean = true,category:String="MESSAGE_CATEGORY"):void + public static function sendMessage(title:String, body:String,date:Date=null,forground:Boolean=true,vibrate:Boolean = true,category:String="MESSAGE_CATEGORY",newMessageId:int = MessageID):void { - if (Notifications.isSupported) + init(); + if (isSupported()) { service.enableNotificationsWhenActive = forground; if(date==null) - Notifications.service.notify(new NotificationBuilder().setId(MessageID).setAlert(DevicePrefrence.appName).setTitle(title).setBody(body).setCategory(category).enableVibration(vibrate).build()); + (NotificationsClass as Object).service.notify(new NotificationBuilderClass().setId(newMessageId).setAlert(DevicePrefrence.appName).setTitle(title).setBody(body).setCategory(category).enableVibration(vibrate).build()); else - Notifications.service.notify(new NotificationBuilder().setId(MessageID).setAlert(DevicePrefrence.appName).setTitle(title).setBody(body).setCategory(category).enableVibration(vibrate).setFireDate(date).build()) + { + date = new Date(date.time); + (NotificationsClass as Object).service.notify(new NotificationBuilderClass().setId(newMessageId).setAlert(DevicePrefrence.appName).setTitle(title).setBody(body).setCategory(category).enableVibration(vibrate).setFireDate(date).build()) + } } } public static function preventClose(title:String="Application is closed!", body:String="Please open the application", forground:Boolean = true, vibrate:Boolean = false):void { - if (Notifications.isSupported) + init(); + if (isSupported()) { _titleMessage = title; _bodyMessage = body; @@ -124,43 +184,46 @@ package nativeClasses.localNotification public static function setBadgeNumber(number:uint):void { - if (Notifications.isSupported) + init(); + if (isSupported()) { - Notifications.service.setBadgeNumber(number); + (NotificationsClass as Object).service.setBadgeNumber(number); } } private static function removeEarlierWakeUpNotificationAndAddNewNotification():void { cancelNotification(PreventCloseID); - Notifications.service.notify(new NotificationBuilder().setId(PreventCloseID).setAlert(DevicePrefrence.appName).setTitle(_titleMessage).setBody(_bodyMessage).setCategory("PREVENT_SLEEEP").enableVibration(_vibrateMessage).setFireDate(new Date((new Date()).time + resetNotification)).build()); + (NotificationsClass as Object).service.notify(new NotificationBuilderClass().setId(PreventCloseID).setAlert(DevicePrefrence.appName).setTitle(_titleMessage).setBody(_bodyMessage).setCategory("PREVENT_SLEEEP").enableVibration(_vibrateMessage).setFireDate(new Date((new Date()).time + resetNotification)).build()); } private static function requestAuthorisation(e:* = null):void { - switch (Notifications.service.authorisationStatus()) + init(); + switch ((NotificationsClass as Object).service.authorisationStatus()) { - case AuthorisationStatus.AUTHORISED: + case (AuthorisationStatusClass as Object).AUTHORISED: // This device has been authorised. // You can register this device and expect: // - registration success/failed event, and; // - notifications to be displayed - Notifications.service.register(); + (NotificationsClass as Object).service.register(); break; - case AuthorisationStatus.NOT_DETERMINED: + case (AuthorisationStatusClass as Object).NOT_DETERMINED: // You are yet to ask for authorisation to display notifications // At this point you should consider your strategy to get your user to authorise // notifications by explaining what the application will provide - Notifications.service.requestAuthorisation(); + (NotificationsClass as Object).service.requestAuthorisation(); break; - case AuthorisationStatus.DENIED: + case AuthorisationStatusClass + .DENIED: // The user has disabled notifications // Advise your user of the lack of notifications as you see fit // For example: You can redirect to the settings page on iOS - if (Notifications.service.canOpenDeviceSettings) + if ((NotificationsClass as Object).service.canOpenDeviceSettings) { //Notifications.service.openDeviceSettings(); } diff --git a/nativeClasses/localNotification/LocalNotificationJK.as b/nativeClasses/localNotification/LocalNotificationJK.as index 9db7b121..0d2d65e0 100644 --- a/nativeClasses/localNotification/LocalNotificationJK.as +++ b/nativeClasses/localNotification/LocalNotificationJK.as @@ -102,7 +102,7 @@ { readyFunctionsQue.push(onReady); } - trace("isSupport() : " + isSupport()); + SaffronLogger.log("isSupport() : " + isSupport()); if (isSupport()) { //NativeApplication.nativeApplication.executeInBackground = true; @@ -127,7 +127,7 @@ } else { - trace("!!!!!!!!!!!!!!! Notification is not supporting here !!!!!!!!!!!!!!!!!"); + SaffronLogger.log("!!!!!!!!!!!!!!! Notification is not supporting here !!!!!!!!!!!!!!!!!"); satUpOnce = true; //callAllReadies() @@ -164,7 +164,7 @@ private static function removeEarlierWakeUpNotificationAndAddNewNotification():void { loadClasses(); - trace("Notif2:" + WakeMessage); + SaffronLogger.log("Notif2:" + WakeMessage); if(notificationManager) notificationManager.cancel(NOTIFICATION_IS_CLOSE); var notificati:Object = new NotificationClass(); @@ -199,14 +199,14 @@ if(notificationManager!=null) notificationManager.notifyUser(NOTIFICATION_MESSAGE, notificati); //showNotification = true; - trace("**** Please send notification"); + SaffronLogger.log("**** Please send notification"); }) } /**Cancel custom notification*/ public static function cancelCustomNotification():void { - trace("Cancel cutsom notificaiton"); + SaffronLogger.log("Cancel cutsom notificaiton"); setUp(function(){if(notificationManager!=null)notificationManager.cancel(NOTIFICATION_MESSAGE)}); } diff --git a/nativeClasses/location/DistriqtLocation.as b/nativeClasses/location/DistriqtLocation.as index 28db3306..430aef69 100644 --- a/nativeClasses/location/DistriqtLocation.as +++ b/nativeClasses/location/DistriqtLocation.as @@ -36,11 +36,11 @@ checkLocationPermission(openLocationSetting, openLocationSetting); function openLocationSetting():void { - trace("** openLocationSetting"); + SaffronLogger.log("** openLocationSetting"); if (_googlePlyaSupport) { if (!Location.service.isAvailable()) { if (DevicePrefrence.isAndroid()) { - trace("************** open location"); + SaffronLogger.log("************** open location"); var request:* = new LocationRequest(); request.priority = LocationRequest.PRIORITY_HIGH_ACCURACY; @@ -50,35 +50,35 @@ Location.service.addEventListener(LocationSettingsEvent.FAILED, checkLocationSettingsHandler); if (showSetting == false) { onDenied(); - trace("onDenided") + SaffronLogger.log("onDenided") return } var success:Boolean = Location.service.checkLocationSettings(request) as Boolean; if (!success) { onDenied(); - trace("onDenided") + SaffronLogger.log("onDenided") Location.service.displayLocationSettings(); } function checkLocationSettingsHandler(event:*):void { - trace("********** Location is ? " + event.type); + SaffronLogger.log("********** Location is ? " + event.type); } } else { - trace("********* Open location setting") + SaffronLogger.log("********* Open location setting") onDenied(); - trace("onDenided") + SaffronLogger.log("onDenided") if (showSetting == true) Location.service.displayLocationSettings(); } } else { - trace("************* Locatoin service is available *************"); + SaffronLogger.log("************* Locatoin service is available *************"); onActivated(); - trace("onActive") + SaffronLogger.log("onActive") } } else { - trace("************* Google play is not support") + SaffronLogger.log("************* Google play is not support") onDenied(); - trace("onDenided") + SaffronLogger.log("onDenided") } } } @@ -113,7 +113,7 @@ case AuthorisationStatus.ALWAYS: case AuthorisationStatus.IN_USE: _locationSupport = true; - trace("User allowed access: " + Location.service.authorisationStatus() + " >> " + onPermissioned); + SaffronLogger.log("User allowed access: " + Location.service.authorisationStatus() + " >> " + onPermissioned); if (onPermissioned != null) { onPermissioned(); return; @@ -128,7 +128,7 @@ case AuthorisationStatus.RESTRICTED: case AuthorisationStatus.DENIED: case AuthorisationStatus.UNKNOWN: - trace("User denied access"); + SaffronLogger.log("User denied access"); _locationSupport = false; break; } @@ -155,11 +155,11 @@ GoogleApiAvailability.instance.showErrorDialog(result); } else { _googlePlyaSupport = false; - trace("Google Play Services aren't available on this device"); + SaffronLogger.log("Google Play Services aren't available on this device"); } } else { _googlePlyaSupport = true; - trace("Google Play Services are Available"); + SaffronLogger.log("Google Play Services are Available"); } } } diff --git a/nativeClasses/map/DistriqtGoogleMap.as b/nativeClasses/map/DistriqtGoogleMap.as index a65ab421..caca4ca3 100644 --- a/nativeClasses/map/DistriqtGoogleMap.as +++ b/nativeClasses/map/DistriqtGoogleMap.as @@ -1,51 +1,58 @@ -package nativeClasses.map +package nativeClasses.map { - //import com.distriqt.extension.nativemaps.AuthorisationStatus; - //import com.distriqt.extension.nativemaps.NativeMaps; - //import com.distriqt.extension.nativemaps.events.NativeMapEvent; - //import com.distriqt.extension.nativemaps.objects.CustomMarkerIcon; - //import com.distriqt.extension.nativemaps.objects.LatLng; - //import com.distriqt.extension.nativemaps.objects.MapMarker; - //import com.distriqt.extension.nativemaps.objects.MapType; - - import com.mteamapp.StringFunctions; - + import flash.display.Sprite; import flash.events.Event; import flash.events.EventDispatcher; - import flash.filesystem.File; import flash.geom.Rectangle; import flash.utils.getDefinitionByName; import flash.utils.setTimeout; import stageManager.StageManager; + import flash.display.StageScaleMode; + import flash.display.BitmapData; + import flash.display.Bitmap; + import flash.geom.Point; public class DistriqtGoogleMap extends Sprite { - private static var api_key:String ; - - /**com.distriqt.extension.nativemaps.AuthorisationStatus*/ + /**com.distriqt.extension.application.AuthorisationStatus*/ private static var AuthorisationStatusClass:Class ; - /**com.distriqt.extension.nativemaps.NativeMaps*/ + /**com.distriqt.extension.application.NativeMaps*/ private static var NativeMapsClass:Class ; - /**com.distriqt.extension.nativemaps.events.NativeMapEvent*/ + /**com.distriqt.extension.application.events.NativeMapEvent*/ private static var NativeMapEventClass:Class ; - /**com.distriqt.extension.nativemaps.objects.CustomMarkerIcon*/ + /*com.distriqt.extension.nativemaps.events.NativeMapBitmapEvent*/ + private static var NativeMapBitmapEventClass:Class ; + /**com.distriqt.extension.application.objects.CustomMarkerIcon*/ private static var CustomMarkerIconClass:Class ; - /**com.distriqt.extension.nativemaps.objects.LatLng*/ + /**com.distriqt.extension.application.objects.LatLng*/ private static var LatLngClass:Class ; - /**com.distriqt.extension.nativemaps.objects.MapMarker*/ + /**com.distriqt.extension.application.objects.MapMarker*/ private static var MapMarkerClass:Class ; - /**import com.distriqt.extension.nativemaps.objects.MapStyleOptions*/ + /**import com.distriqt.extension.application.objects.MapStyleOptions*/ private static var MapStyleOptionsClass:Class; - /**com.distriqt.extension.nativemaps.objects.MapType*/ + /**com.distriqt.extension.application.objects.MapType*/ private static var MapTypeClass:Class ; + + private static var defaultZoomLevel:uint = 15; + + private static var isSupports:Boolean = false ; private static var mapInitialized:Boolean = false ; + + public static var debuggingExtraDeltaH:Number = -12 ; + + private var map_style:String, + user_location:Boolean ; + + private var forceToHideMap:Boolean = false ; private static var scl:Number = 0, + statusBarSize:Number=0, + deltaX:Number, deltaY:Number; @@ -57,6 +64,7 @@ package nativeClasses.map /**myMarkers is an array of MapMarker*/ private var myMarkers:Vector., + markerItemsList:Vector. = new Vector.(), myIcons:Vector.; private var mapCretedOnStage:Boolean; @@ -64,98 +72,22 @@ package nativeClasses.map private var center:Object; private var firstZoomLevel:Number = -1 ; + + private var catchedBitmapData:BitmapData, + catchedBitmap:Bitmap ; + + private static var counter:uint ; - public static function setUp(GoogleAPIKey:String,DistriqtId:String):void + public static function setUp(GoogleAPIKey:String=null,DistriqtId:String=null):void { - api_key = GoogleAPIKey ; - //trace('*********GoogleAPIKey*******'+GoogleAPIKey); - var neceraryLines:String = '•' ; - - var AndroidPermission:String = neceraryLines+'\n' + - '\t\n' + - '\t\n' + - '\t\n' + - '\t\n' + - '\t\n' + - '\t\n' + - '\t\n' + - '\t\n' + - '\t\n' + - '\t\n' + - '\t\n' + - neceraryLines+'\t\n' + - '\t\t\n' + - '\t\t\n' + - '\t\t\n' + - neceraryLines+'\t\n' + - neceraryLines+''; - - var hintText:String = ("*******************\n\n\n\n\nYou have to add below ane files to your project : \n com.distriqt.androidsupport.V4.ane\n" + - "\n" + - //"com.distriqt.GooglePlayServices.ane\n" + - - "\t\n"+ - "\t\tcom.distriqt.Core\n"+ - "\t\tcom.distriqt.androidsupport.V4\n"+ - "\t\tcom.distriqt.NativeMaps\n"+ - "\t\tcom.distriqt.playservices.Base\n"+ - "\t\tcom.distriqt.playservices.Maps\n"+ - "\t\n\n\n"+ - - "And aloso controll your permission on Android manifest:\n\n" + - AndroidPermission+ - '\n\n\n\n\n\n\n' + - "*******************"); - - - var descriptString:String = StringFunctions.clearSpacesAndTabs(DevicePrefrence.appDescriptor.toString()) ; - if(descriptString.indexOf("permission.MAPS_RECEIVE")!=-1 && descriptString.indexOf(DevicePrefrence.appID+".permission.MAPS_RECEIVE")==-1) - { - throw "Your Manifest is absolutly wrong!! controll the example"; - } - - - var allAndroidPermission:Array = AndroidPermission.split('\n'); - var leftPermission:String = '' ; - var androidManifestMustUpdate:Boolean = false ; - for(var i:int = 0 ; i>>"+ e ); + SaffronLogger.log("e>>>"+ e ); isSupports = false ; } @@ -185,17 +115,17 @@ package nativeClasses.map private static function initializeMap():void { var autoriseStatus:String = (NativeMapsClass as Object).service.authorisationStatus(); - trace("*********************autoriseStatus*******************"+autoriseStatus); + SaffronLogger.log("*********************autoriseStatus*******************"+autoriseStatus); switch (autoriseStatus) { case (AuthorisationStatusClass as Object).ALWAYS: case (AuthorisationStatusClass as Object).IN_USE: - trace( "User allowed access: " + (NativeMapsClass as Object).service.authorisationStatus() ); + SaffronLogger.log( "User allowed access: " + (NativeMapsClass as Object).service.authorisationStatus() ); break; case (AuthorisationStatusClass as Object).NOT_DETERMINED: case (AuthorisationStatusClass as Object).SHOULD_EXPLAIN: - trace("--requestAuthorisation"); + SaffronLogger.log("--requestAuthorisation"); (NativeMapsClass as Object).service.requestAuthorisation( (AuthorisationStatusClass as Object).IN_USE ); break; @@ -203,7 +133,7 @@ package nativeClasses.map case (AuthorisationStatusClass as Object).DENIED: case (AuthorisationStatusClass as Object).UNKNOWN: default: - trace( "Request access to location services." ); + SaffronLogger.log( "Request access to location services." ); if((NativeMapsClass as Object).service.requestAuthorisation.length>0) { (NativeMapsClass as Object).service.requestAuthorisation( (AuthorisationStatusClass as Object).IN_USE ); @@ -218,18 +148,23 @@ package nativeClasses.map if(!mapInitialized) { mapInitialized = true ; - trace("prepareViewOrder"); + SaffronLogger.log("prepareViewOrder"); (NativeMapsClass as Object).service.prepareViewOrder(); - trace("prepareViewOrder done"); + SaffronLogger.log("prepareViewOrder done"); } } /**Some times you have to create this class after a delay, We didn't found why till now...*/ public function DistriqtGoogleMap(Width:Number,Height:Number) { + counter++; super(); + setUp(); dispatcher.dispatchEvent(new Event(Event.REMOVED_FROM_STAGE)); unload(); + + catchedBitmap = new Bitmap(); + this.addChild(catchedBitmap); this.graphics.beginFill(0x222222,0); this.graphics.drawRect(0,0,Width,Height); @@ -237,32 +172,58 @@ package nativeClasses.map this.addEventListener(Event.REMOVED_FROM_STAGE,unload); dispatcher.addEventListener(Event.REMOVED_FROM_STAGE,removeMeBecauseSomeOneElseComes); } + + override public function set visible(value:Boolean):void + { + super.visible = value ; + + try + { + if(value) + (NativeMapsClass as Object).service.showMap(); + else + (NativeMapsClass as Object).service.hideMap(); + } + catch(e:Error) + { + trace(e.message); + } + } protected function removeMeBecauseSomeOneElseComes(event:Event):void { Obj.remove(this); } + + public function userCanSelecAPoint():void + { + + } - public function setMap(centerLat:Number=NaN,centerLon:Number=NaN,icons:Vector.=null,zoomLevel:Number=-1):void + public function setMap(centerLat:Number=NaN,centerLon:Number=NaN,icons:Vector.=null,zoomLevel:Number=-1,mapStyleJSON:String=null,showUserLocation:Boolean=false):void { + if(!isSupports) + return; + map_style = mapStyleJSON ; + user_location = showUserLocation ; //unload(); - trace("AuthorisationStatus.ALWAYS : "+(AuthorisationStatusClass as Object).ALWAYS); - trace("AuthorisationStatus.DENIED : "+(AuthorisationStatusClass as Object).DENIED); - trace("AuthorisationStatus.IN_USE : "+(AuthorisationStatusClass as Object).IN_USE); - trace("AuthorisationStatus.NOT_DETERMINED : "+(AuthorisationStatusClass as Object).NOT_DETERMINED); - trace("AuthorisationStatus.RESTRICTED : "+(AuthorisationStatusClass as Object).RESTRICTED); - trace("AuthorisationStatus.SHOULD_EXPLAIN : "+(AuthorisationStatusClass as Object).SHOULD_EXPLAIN); - trace("AuthorisationStatus.UNKNOWN : "+(AuthorisationStatusClass as Object).UNKNOWN); + SaffronLogger.log("AuthorisationStatus.ALWAYS : "+(AuthorisationStatusClass as Object).ALWAYS); + SaffronLogger.log("AuthorisationStatus.DENIED : "+(AuthorisationStatusClass as Object).DENIED); + SaffronLogger.log("AuthorisationStatus.IN_USE : "+(AuthorisationStatusClass as Object).IN_USE); + SaffronLogger.log("AuthorisationStatus.NOT_DETERMINED : "+(AuthorisationStatusClass as Object).NOT_DETERMINED); + SaffronLogger.log("AuthorisationStatus.RESTRICTED : "+(AuthorisationStatusClass as Object).RESTRICTED); + SaffronLogger.log("AuthorisationStatus.SHOULD_EXPLAIN : "+(AuthorisationStatusClass as Object).SHOULD_EXPLAIN); + SaffronLogger.log("AuthorisationStatus.UNKNOWN : "+(AuthorisationStatusClass as Object).UNKNOWN); - trace("----"); + SaffronLogger.log("----"); - trace("MapType.MAP_TYPE_HYBRID : "+(MapTypeClass as Object).MAP_TYPE_HYBRID); - trace("MapType.MAP_TYPE_NONE : "+MapTypeClass.MAP_TYPE_NONE); - trace("MapType.MAP_TYPE_NORMAL : "+(MapTypeClass as Object).MAP_TYPE_NORMAL); - trace("MapType.MAP_TYPE_SATELLITE : "+(MapTypeClass as Object).MAP_TYPE_SATELLITE); - trace("MapType.MAP_TYPE_TERRAIN : "+(MapTypeClass as Object).MAP_TYPE_TERRAIN); + SaffronLogger.log("MapType.MAP_TYPE_HYBRID : "+(MapTypeClass as Object).MAP_TYPE_HYBRID); + SaffronLogger.log("MapType.MAP_TYPE_NONE : "+MapTypeClass.MAP_TYPE_NONE); + SaffronLogger.log("MapType.MAP_TYPE_NORMAL : "+(MapTypeClass as Object).MAP_TYPE_NORMAL); + SaffronLogger.log("MapType.MAP_TYPE_SATELLITE : "+(MapTypeClass as Object).MAP_TYPE_SATELLITE); + SaffronLogger.log("MapType.MAP_TYPE_TERRAIN : "+(MapTypeClass as Object).MAP_TYPE_TERRAIN); - trace("-------"); + SaffronLogger.log("-------"); myMarkers = new Vector.(); myIcons = new Vector.(); if(icons!=null) @@ -270,34 +231,99 @@ package nativeClasses.map myIcons = icons ; } mapCretedOnStage = false ; - if(api_key==null) - { - throw "You should set the DistriqtGoogleMap.setUp(..) first"; - } if ((NativeMapsClass as Object).isSupported) { var rect:Rectangle; rect = createViewPort(); - trace("Create map : "+rect); + SaffronLogger.log("Create map : "+rect); if(!isNaN(centerLat) && !isNaN(centerLon)) { center = new LatLngClass(centerLat,centerLon); } - firstZoomLevel = zoomLevel ; - trace("...listenning..."); + firstZoomLevel = zoomLevel<0?defaultZoomLevel:zoomLevel ; + SaffronLogger.log("...listenning..."); (NativeMapsClass as Object).service.addEventListener( (NativeMapEventClass as Object).MAP_CREATED, mapCreatedHandler ); - trace("---Creating..."); - (NativeMapsClass as Object).service.createMap( rect, (MapTypeClass as Object).MAP_TYPE_NORMAL); - - trace("Create map done"); + (NativeMapsClass as Object).service.addEventListener( (NativeMapBitmapEventClass as Object).READY , updateCapturedBitmap); + (NativeMapsClass as Object).service.addEventListener((NativeMapEventClass as Object).MARKER_TOUCHED,getTouchedItem); + SaffronLogger.log("---Creating..."); + (NativeMapsClass as Object).service.createMap( rect, (MapTypeClass as Object).MAP_TYPE_NORMAL,new LatLngClass(centerLat,centerLon),firstZoomLevel); + if(!super.visible) + (NativeMapsClass as Object).service.hideMap(); + SaffronLogger.log("Create map done"); mapCreated = true ; mapIsShowing = true ; } - this.addEventListener(Event.ENTER_FRAME,repose); + else + { + SaffronLogger.log("Google map is not support"); + } + this.addEventListener(Event.ENTER_FRAME,repose,false,10000); + } + + public function isCreated():Boolean + { + return mapCreated ; + } + + private function getTouchedItem(e:*):void + { + for(var i:int = 0 ; i(); } private function mapCreatedHandler(e:*):void { mapCretedOnStage = true ; - setCenter(center.lat,center.lon,firstZoomLevel); + if(center!=null) + setCenter(center.lat,center.lon,firstZoomLevel); + else + setCenter(0,0,firstZoomLevel); + + + setMapStyle(); + + (NativeMapsClass as Object).service.showUserLocation(user_location); + updateMarkers(); + updateCenterMarker(); } + + private function setMapStyle():void + { + if(map_style!=null) + { + /*forceToHideMap = true ; + repose(null); + (NativeMapsClass as Object).service.addEventListener( (NativeMapEvent).MAP_RENDER_COMPLETE, showMapAgain );*/ + var styleOption:* = new MapStyleOptionsClass(map_style); + (NativeMapsClass as Object).service.setMapStyle(styleOption); + } + } + + private function showMapAgain(e:*):void + { + (NativeMapsClass as Object).service.removeEventListener( (NativeMapEventClass).MAP_RENDER_COMPLETE, showMapAgain ); + forceToHideMap = false ; + } public function setCenter(lat:Number,lon:Number,zoomLevel:Number=-1,animationDuration:uint=2000):void { - trace("******* first center is : "+lat,lon,zoomLevel); + setUp(); + if(isSupports==false)return; + SaffronLogger.log("******* first center is : "+lat,lon,zoomLevel); center = new LatLngClass(lat,lon); - firstZoomLevel = zoomLevel ; - (NativeMapsClass as Object).service.setCentre(center,zoomLevel,animationDuration!=0,animationDuration) + firstZoomLevel = zoomLevel<=0?defaultZoomLevel:zoomLevel ; + (NativeMapsClass as Object).service.setCentre(center/* as LatLng*/,firstZoomLevel,animationDuration!=0,animationDuration) } private function createViewPort():Rectangle { + catchedBitmap.width = 1 ; + catchedBitmap.height = 1 ; var rect:Rectangle = this.getBounds(stage); - //trace("****Create view port"); + //SaffronLogger.log("****Create view port"); if(scl==0) { var stageRect:Rectangle = StageManager.stageRect ; - trace("stageRect : "+stageRect); + SaffronLogger.log("stageRect : "+stageRect); var sclX:Number ; var sclY:Number ; deltaX = 0 ; deltaY = 0 ; - var _fullScreenWidth:Number, - _fullScreenHeight:Number; - if(stageRect.width==0) - { - trace("+++default size detection") + + + SaffronLogger.log("+++default size detection") sclX = (stage.fullScreenWidth/stage.stageWidth); sclY = (stage.fullScreenHeight/stage.stageHeight); if(sclX<=sclY) @@ -359,36 +418,22 @@ package nativeClasses.map scl = sclY ; deltaX = stage.fullScreenWidth-(stage.stageWidth)*scl ; } - } - else - { - trace("+++advvanced size detection"); - _fullScreenWidth = stageRect.width*StageManager.stageScaleFactor() ; - _fullScreenHeight = stageRect.height*StageManager.stageScaleFactor() ; - sclX = (_fullScreenWidth/stage.stageWidth); - sclY = (_fullScreenHeight/stage.stageHeight); - trace("sclX : "+sclX); - trace("sclY : "+sclY); - if(sclX<=sclY) - { - scl = sclX ; - deltaY = _fullScreenHeight-(stage.stageHeight)*scl ; - } - else - { - scl = sclY ; - deltaX = _fullScreenWidth-(stage.stageWidth)*scl ; - } - trace("deltaX : "+deltaX); - trace("deltaY : "+deltaY); - trace("scl : "+scl); - } + stage.scaleMode = StageScaleMode.NO_SCALE; + var stageHeightUnderStatusBar:Number = stage.stageHeight ; + stage.scaleMode = StageScaleMode.SHOW_ALL; + statusBarSize = (stage.fullScreenHeight-stageHeightUnderStatusBar); + //Alert.show("statusBarSize:"+statusBarSize+", scl:"+scl); + statusBarSize = Math.ceil(statusBarSize/scl); + //Alert.show("statusBarSize2:"+statusBarSize); + statusBarSize+=debuggingExtraDeltaH; } + + catchedBitmap.scaleX = catchedBitmap.scaleY = 1/scl ; - //trace("Old rect : " +rect); - //trace("scl : "+scl); - //trace("deltaX : "+deltaX); - //trace("deltaY : "+deltaY); + //SaffronLogger.log("Old rect : " +rect); + //SaffronLogger.log("scl : "+scl); + //SaffronLogger.log("deltaX : "+deltaX); + //SaffronLogger.log("deltaY : "+deltaY); rect.x*=scl; rect.y*=scl; @@ -398,11 +443,11 @@ package nativeClasses.map rect.height*=scl; rect.x = round(rect.x); - rect.y = round(rect.y); + rect.y = round(rect.y)-statusBarSize; rect.width = round(rect.width); rect.height = round(rect.height); - //trace("new rect : " +rect); + //SaffronLogger.log("new rect : " +rect); if(rect.x<0) { @@ -441,43 +486,80 @@ package nativeClasses.map protected function repose(event:Event):void { var rect:Rectangle = createViewPort(); - //trace("Repose : "+rect); + //SaffronLogger.log("Repose : "+rect); if(rect) (NativeMapsClass as Object).service.setLayout(rect.width,rect.height,rect.x,rect.y); - //trace("map place is : "+rect); + //SaffronLogger.log("map place is : "+rect); - if(rect!=null && Obj.isAccesibleByMouse(this)) + if(forceToHideMap ==false && rect!=null && Obj.isAccesibleByMouse(this)) { - //trace("Show map!!!!!!!!!!!!!!!!!!!!!!!!!!!"); - if(!mapIsShowing) + //SaffronLogger.log("Show map!!!!!!!!!!!!!!!!!!!!!!!!!!!"); + if(!mapIsShowing && super.visible) { - //trace("!!!!!!!!!!!!!!!!!show!!!!!!!!!!!!"); + //SaffronLogger.log("!!!!!!!!!!!!!!!!!show!!!!!!!!!!!!"); (NativeMapsClass as Object).service.showMap(); mapIsShowing = true ; + //catchedBitmap.visible = false ; } } else { - //trace("Hide the map!!!"); + //SaffronLogger.log("Hide the map!!!"); if(mapIsShowing) { - //trace("!!!!!!!!!!!!!!!hide!!!!!!!!!!!!!!!"); + //SaffronLogger.log("!!!!!!!!!!!!!!!hide!!!!!!!!!!!!!!!"); (NativeMapsClass as Object).service.hideMap(); + (NativeMapsClass as Object).service.requestMapBitmapData(); mapIsShowing = false ; + catchedBitmap.visible = true ; + } + } + + if(centerMarker!=null) + { + var cent:* = (NativeMapsClass as Object).service.getCentre() ; + if(centerMarkerPosition==null) + { + centerMarkerPosition = cent ; } + if(centerMarkerPosition==null) + return; + centerMarkerPosition.lat = centerMarkerPosition.lat+(cent.lat-centerMarkerPosition.lat)/2; + centerMarkerPosition.lon = centerMarkerPosition.lon+(cent.lon-centerMarkerPosition.lon)/2; + centerMarker.setPosition(centerMarkerPosition); + (NativeMapsClass as Object).service.updateMarker(centerMarker); } } + + public function centerPosition():Point + { + setUp() + try{ + var cent:* = (NativeMapsClass as Object).service.getCentre() ; + if(cent!=null) + return new Point(cent.lat,cent.lon); + } + catch(e:Error){}; + return new Point(0,0); + } - public function addMarker(markerName:String,lat:Number,lon:Number,markerTitle:String,markerInfo:String,color:uint=0,enableInfoWindow=true,animated:Boolean=true,showInfoButton:Boolean=true,iconId:String=''):void + /**Be carefull to user a unique name as marekrName */ + public function addMarker(markerName:String,lat:Number,lon:Number,markerTitle:String,markerInfo:String,color:uint=0,enableInfoWindow:Boolean=true,animated:Boolean=true,showInfoButton:Boolean=true,iconId:String=''):MarkerItem { - trace("****************Map marker Added : ",lat,lon,markerName,'iconId : '+iconId); + setUp(); + var markerItem:MarkerItem = new MarkerItem(markerName); + markerItemsList.push(markerItem); + if(!isSupports) + return markerItem; + //Alert.show("****************Map marker Added : ",lat,lon,markerName,'iconId : '+iconId); var myMarker:Object = new MapMarkerClass(markerName,new LatLngClass(lat,lon),markerTitle,markerInfo,color,false,enableInfoWindow,animated,showInfoButton,iconId) myMarkers.push(myMarker); if(mapCretedOnStage) { updateMarkers(); } + return markerItem ; } public function style(style:String):void @@ -485,16 +567,21 @@ package nativeClasses.map var mapStyle:Object = new MapStyleOptionsClass(style); } + + public function zoomLevel():Number + { + return (NativeMapsClass as Object).service.getZoom(); + } private function updateMarkers():void { - (NativeMapsClass as Object).service.clearMap(); + //(NativeMapsClass as Object).service.clearMap(); - var i:int ; + var i:int, j:int ; var isDuplicated:Boolean = false ; for(i = 0 ; i(); for(i = 0 ; i(); + if(super.visible==false)(NativeMapsClass as Object).service.hideMap(); } } } \ No newline at end of file diff --git a/nativeClasses/map/MarkerItem.as b/nativeClasses/map/MarkerItem.as new file mode 100644 index 00000000..97a3bfab --- /dev/null +++ b/nativeClasses/map/MarkerItem.as @@ -0,0 +1,33 @@ +package nativeClasses.map +{ + public class MarkerItem + { + internal var id:int; + + + public var name:String ; + + private var _onClick:Function ; + + public function MarkerItem(markerName:String) + { + name = markerName ; + } + + public function dispatchClicked():void + { + if(_onClick!=null) + { + if(_onClick.length==0) + _onClick(); + else + _onClick(this); + } + } + + public function onClick(event:Function):void + { + _onClick = event ; + } + } +} \ No newline at end of file diff --git a/nativeClasses/pdfReader/DistriqtPDFReader.as b/nativeClasses/pdfReader/DistriqtPDFReader.as index fc139891..667b917a 100644 --- a/nativeClasses/pdfReader/DistriqtPDFReader.as +++ b/nativeClasses/pdfReader/DistriqtPDFReader.as @@ -63,7 +63,7 @@ if(nativesToAdd!='') { nativeCheck = "\n\n\n******* You should add below extentions to your project for PDF to work\n\n\n"+nativesToAdd+"\n\n\n*********************" ; - trace(nativeCheck); + SaffronLogger.log(nativeCheck); } //////////////////////////Android permission check ↓ @@ -98,7 +98,7 @@ isNessesaryToShow = isNessesaryLine(allSplittedPermission[i]); if(descriptString.indexOf(StringFunctions.clearSpacesAndTabsAndArrows(removeNecessaryBoolet(allSplittedPermission[i])))==-1) { - trace("I couldnt find : "+allSplittedPermission[i]); + SaffronLogger.log("I couldnt find : "+allSplittedPermission[i]); androidManifestMustUpdate = true ; leftPermission += removeNecessaryBoolet(allSplittedPermission[i])+'\n' ; } @@ -144,7 +144,7 @@ isNessesaryToShow = isNessesaryLine(allSplittedPermission[i]); if(descriptString.indexOf(StringFunctions.clearSpacesAndTabsAndArrows(removeNecessaryBoolet(allSplittedPermission[i])))==-1) { - trace("I couldnt find : "+allSplittedPermission[i]); + SaffronLogger.log("I couldnt find : "+allSplittedPermission[i]); appleManifestMustUpdate = true ; leftPermission += removeNecessaryBoolet(allSplittedPermission[i])+'\n' ; } @@ -184,11 +184,11 @@ } catch (e:Error) { - trace("*******************\n\n\n"+ e ); + SaffronLogger.log("*******************\n\n\n"+ e ); isSupport = false ; } - trace("****\n\n\n\nPDF support status is : "+isSupport+"\n\n\n********"); + SaffronLogger.log("****\n\n\n\nPDF support status is : "+isSupport+"\n\n\n********"); } @@ -214,7 +214,7 @@ } catch(e:Error) { - trace(e.message); + SaffronLogger.log(e.message); } } } @@ -222,11 +222,11 @@ private function createViewPort():Rectangle { var rect:Rectangle = this.getBounds(stage); - //trace("****Create view port"); + //SaffronLogger.log("****Create view port"); if(scl==0) { var stageRect:Rectangle = StageManager.stageRect ; - trace("stageRect : "+stageRect); + SaffronLogger.log("stageRect : "+stageRect); var sclX:Number ; var sclY:Number ; deltaX = 0 ; @@ -235,7 +235,7 @@ _fullScreenHeight:Number; if(stageRect.width==0) { - trace("+++default size detection") + SaffronLogger.log("+++default size detection") sclX = (stage.fullScreenWidth/stage.stageWidth); sclY = (stage.fullScreenHeight/stage.stageHeight); if(sclX<=sclY) @@ -251,13 +251,13 @@ } else { - trace("+++advvanced size detection"); + SaffronLogger.log("+++advvanced size detection"); _fullScreenWidth = stageRect.width*StageManager.stageScaleFactor() ; _fullScreenHeight = stageRect.height*StageManager.stageScaleFactor() ; sclX = (_fullScreenWidth/stage.stageWidth); sclY = (_fullScreenHeight/stage.stageHeight); - trace("sclX : "+sclX); - trace("sclY : "+sclY); + SaffronLogger.log("sclX : "+sclX); + SaffronLogger.log("sclY : "+sclY); if(sclX<=sclY) { scl = sclX ; @@ -268,16 +268,16 @@ scl = sclY ; deltaX = _fullScreenWidth-(stage.stageWidth)*scl ; } - trace("deltaX : "+deltaX); - trace("deltaY : "+deltaY); - trace("scl : "+scl); + SaffronLogger.log("deltaX : "+deltaX); + SaffronLogger.log("deltaY : "+deltaY); + SaffronLogger.log("scl : "+scl); } } - //trace("Old rect : " +rect); - //trace("scl : "+scl); - //trace("deltaX : "+deltaX); - //trace("deltaY : "+deltaY); + //SaffronLogger.log("Old rect : " +rect); + //SaffronLogger.log("scl : "+scl); + //SaffronLogger.log("deltaX : "+deltaX); + //SaffronLogger.log("deltaY : "+deltaY); var iphoneXScale:Number = 1 ; if(StageManager.isIphoneX()) @@ -301,7 +301,7 @@ rect.width = round(rect.width); rect.height = round(rect.height); - //trace("new rect : " +rect); + //SaffronLogger.log("new rect : " +rect); if(rect.x<0) { @@ -339,8 +339,8 @@ public function openPDF(PDR_URL:String):void { - trace(">>>> > >> > >> > > >> > >Show this pdf : "+PDR_URL); - //trace("The PDF target is changig with "+(PDR_URL="http://oncolinq.ir/UploadImages/Pdf/Pdf48641pdf%20test.pdf")); + SaffronLogger.log(">>>> > >> > >> > > >> > >Show this pdf : "+PDR_URL); + //SaffronLogger.log("The PDF target is changig with "+(PDR_URL="http://oncolinq.ir/UploadImages/Pdf/Pdf48641pdf%20test.pdf")); dispose(); this.visible = true ; @@ -356,7 +356,7 @@ .build() ); - trace("**** **** **** PDFview : "+view); + SaffronLogger.log("**** **** **** PDFview : "+view); //view.addEventListener( PDFViewEvent.SHOWN, pdfView_shownHandler ); //view.addEventListener( PDFViewEvent.HIDDEN, pdfView_hiddenHandler ); @@ -366,12 +366,12 @@ /*function pdfView_shownHandler( event:PDFViewEvent ):void { - trace( "** ** ** ** * view shown" ); + SaffronLogger.log( "** ** ** ** * view shown" ); } function pdfView_hiddenHandler( event:PDFViewEvent ):void { - trace( "** ** ** ** * view hidden" ); + SaffronLogger.log( "** ** ** ** * view hidden" ); }*/ } diff --git a/nativeClasses/playServices/PlayServices.as b/nativeClasses/playServices/PlayServices.as index 1d7b0bb1..e1c6a7c4 100644 --- a/nativeClasses/playServices/PlayServices.as +++ b/nativeClasses/playServices/PlayServices.as @@ -11,26 +11,26 @@ package nativeClasses.playServices { if(DevicePrefrence.isAndroid()) { - trace("********* ControllDevicePlayService *******"); + SaffronLogger.log("********* ControllDevicePlayService *******"); var result:int = GoogleApiAvailability.instance.isGooglePlayServicesAvailable(); if (result != ConnectionResult.SUCCESS) { - trace("******* User needs play service ******"); + SaffronLogger.log("******* User needs play service ******"); if (GoogleApiAvailability.instance.isUserRecoverableError( result )) { setTimeout(function(){ - trace("c○○○ Show dialog : "+result); + SaffronLogger.log("c○○○ Show dialog : "+result); GoogleApiAvailability.instance.attemptResolution( result ) },5000); } else { - trace( "Google Play Services aren't available on this device" ); + SaffronLogger.log( "Google Play Services aren't available on this device" ); } } else { - trace( "Google Play Services are Available" ); + SaffronLogger.log( "Google Play Services are Available" ); } } } diff --git a/nativeClasses/player/BandwidthTester.as b/nativeClasses/player/BandwidthTester.as index 750ae7d6..4bb5d08b 100644 --- a/nativeClasses/player/BandwidthTester.as +++ b/nativeClasses/player/BandwidthTester.as @@ -6,21 +6,21 @@ public class BandwidthTester extends EventDispatcher { - public static const BAND_TESTED = 'tested'; - public static const TEST = 'test'; + public static const BAND_TESTED:String = 'tested'; + public static const TEST:String = 'test'; - private var bandwidth = 0; //final average bandwidth - private var peak_bandwidth = 0; //peak bandwidth - private var curr_bandwidth = 0; //current take bandwidth + private var bandwidth:* = 0; //final average bandwidth + private var peak_bandwidth:* = 0; //peak bandwidth + private var curr_bandwidth:* = 0; //current take bandwidth - private var testfile = ''; - private var l; //loader - private var tm; //timer - private var last_bytes = 0; //bytes loaded last time - private var bands; //recorded byte speeds - private var _latency = 1; //network utilization approximation + private var testfile:* = ''; + private var l:*; //loader + private var tm:*; //timer + private var last_bytes:* = 0; //bytes loaded last time + private var bands:*; //recorded byte speeds + private var _latency:* = 1; //network utilization approximation - public function BandwidthTester(latency = 0,URL_Path:String="") + public function BandwidthTester(latency:* = 0,URL_Path:String="") { tm = new Timer(1000, 3); testfile = URL_Path; @@ -30,7 +30,7 @@ _latency = 1 - latency; } - public function start() + public function start():void { l = new URLLoader(); l.addEventListener(Event.OPEN, start_timer); @@ -38,7 +38,7 @@ l.load(new URLRequest(testfile)); } - private function get_band(e:TimerEvent) + private function get_band(e:TimerEvent):void { curr_bandwidth = Math.floor(((l.bytesLoaded - last_bytes) / 125) * _latency); bands.push(curr_bandwidth); @@ -47,12 +47,12 @@ dispatchEvent(new Event(BandwidthTester.TEST)); } - public function start_timer(e:Event) + public function start_timer(e:Event):void { tm.start(); } - private function timer_complete(e:TimerEvent) + private function timer_complete(e:TimerEvent):void { l.close(); bands.sort(Array.NUMERIC | Array.DESCENDING); @@ -63,7 +63,7 @@ dispatchEvent(new Event(BandwidthTester.BAND_TESTED)); } - private function end_download(e) + private function end_download(e:*):void { tm.removeEventListener(TimerEvent.TIMER, get_band); tm.removeEventListener(TimerEvent.TIMER_COMPLETE, timer_complete); @@ -76,10 +76,10 @@ dispatchEvent(new Event(BandwidthTester.BAND_TESTED)); } - private function calc_avg_bandwidth() + private function calc_avg_bandwidth():Number { - var total = 0; - var len = bands.length; + var total:* = 0; + var len:int = bands.length; while (len--) { total += bands[len]; @@ -87,22 +87,22 @@ return Math.round(total / bands.length); } - public function set latency(prc) + public function set latency(prc:*):void { this._latency = 1 - prc; } - public function getBandwidth() + public function getBandwidth():* { return bandwidth; } - public function getPeak() + public function getPeak():* { return peak_bandwidth; } - public function last_speed() + public function last_speed():* { return curr_bandwidth; diff --git a/nativeClasses/player/DistriqtAudioPlayer.as b/nativeClasses/player/DistriqtAudioPlayer.as new file mode 100644 index 00000000..33eca6e9 --- /dev/null +++ b/nativeClasses/player/DistriqtAudioPlayer.as @@ -0,0 +1,640 @@ +package nativeClasses.player +{ + //import com.distriqt.extension.mediaplayer.MediaPlayer; + + //import contents.alert.Alert; + + //import com.distriqt.extension.mediaplayer.MediaPlayerOptions; + import darkBox.DarkBox; + import flash.desktop.NativeApplication; + import flash.desktop.SystemIdleMode; + import flash.display.Sprite; + import flash.display.StageOrientation; + import flash.events.AsyncErrorEvent; + import flash.events.Event; + import flash.events.NetStatusEvent; + import flash.filesystem.File; + import flash.geom.Rectangle; + import flash.net.NetConnection; + import flash.net.NetStream; + import flash.utils.clearInterval; + import flash.utils.clearTimeout; + import flash.utils.getDefinitionByName; + import flash.utils.setInterval; + import flash.utils.setTimeout; + + import contents.alert.Alert; + + public class DistriqtAudioPlayer extends Sprite + { + private var isFullScreen:Boolean = false; + + /**com.distriqt.extension.mediaplayer.MediaPlayer*/ + private static var MediaPlayerClass:Class; + /**com.distriqt.extension.mediaplayer.MediaPlayerOptions*/ + private static var MediaPlayerOptionsClass:Object; + + /**com.distriqt.extension.mediaplayer.events.MediaPlayerEvent

+ * FULLSCREEN_ENTER
+ * FULLSCREEN_EXIT
+ * CLICK
+ * COMPLETE
+ * ERROR
+ * LOADED
+ * LOADING
+ * PAUSED
+ * PLAYING
+ * PROGRESS
+ * READY
+ * SEEKING
+ * STOPPED
+ * */ + private static var MediaPlayerEventClass:Class; + + private static var myDistriqtId:String; + + public static var isSupports:Boolean = false; + + private static var scl:Number = 0, lastStageW:Number = 0, deltaX:Number, deltaY:Number; + + private static var appStageWidth:Number, appStageHeight:Number; + + private var isOpen:Boolean = false; + private var debugIntervalId:uint; + + private var lastDeviceOriention:String, lastStageorientetion:String, lastPortrateOrientetion:String = StageOrientation.DEFAULT, lastLandscapeOrientation:String = StageOrientation.ROTATED_RIGHT; + + private var player:Object; + private var manualFullscreen:Boolean, dynamicFullscreen:Boolean; + + private var videoQualities:Array = []; + + public static var checkBandWidth:Boolean = true; + private var bt:BandwidthTester; + private var nc:NetConnection; + private var stream:NetStream; + private var videoURL:String; + private var position:Number = 0; + private var index:int = 0; + private var changeIndex:Boolean = true; + private var lastIndex:int; + private var playFirstVideo:Boolean = true; + private var checkQuailyID:int; + private var checkSeekID:int; + + public function DistriqtAudioPlayer(Width:Number, Height:Number) + { + super(); + if (myDistriqtId == null) + { + throw "Set the distriqt id first by calling DistriqtMediaPlayer.setId(...)"; + } + if (!isSupports) + { + SaffronLogger.log("Distriqt media player is not supporting this device"); + } + isFullScreen = false; + this.graphics.beginFill(0x222222, 0); + this.graphics.drawRect(0, 0, Width, Height); + /*if(isNaN(appStageWidth)) + {*/ + if (this.stage != null) + { + saveStageWidthHeighOnce(); + } + else + { + this.addEventListener(Event.ADDED_TO_STAGE, saveStageWidthHeighOnce); + } + //} + + } + + /**Save the stage widh and height once*/ + private function saveStageWidthHeighOnce(e:* = null):void + { + appStageWidth = stage.stageWidth; + appStageHeight = stage.stageHeight; + SaffronLogger.log("DevicePrefrence.isPortrait() : " + DevicePrefrence.isPortrait()); + if (DevicePrefrence.isPortrait()) + { + debugIntervalId = setInterval(controlOrientationPortrate, 500); + } + NativeApplication.nativeApplication.addEventListener(Event.ACTIVATE, applicationActivated); + NativeApplication.nativeApplication.addEventListener(Event.DEACTIVATE, applicationDeactivated); + } + + protected function applicationDeactivated(event:Event):void + { + if (player != null) + { + try + { + player.pause(); + } + catch (e) + { + } + ; + } + } + + protected function applicationActivated(event:Event):void + { + if (player != null) + { + try + { + player.play(); + } + catch (e) + { + } + ; + } + } + + private function controlOrientationPortrate() + { + if (stage.deviceOrientation == StageOrientation.UNKNOWN || (lastDeviceOriention == stage.deviceOrientation && lastStageorientetion == stage.orientation && (isLandScape(stage.orientation) != isLandScape(stage.deviceOrientation)))) + return; + + if (stage.deviceOrientation == StageOrientation.UPSIDE_DOWN || stage.deviceOrientation == StageOrientation.DEFAULT) + lastPortrateOrientetion = stage.deviceOrientation; + else + lastLandscapeOrientation = stage.deviceOrientation; + + SaffronLogger.log("lastPortrateOrientetion : " + lastPortrateOrientetion); + SaffronLogger.log("lastLandscapeOrientation : " + lastLandscapeOrientation); + + SaffronLogger.log(" stage.orientation : " + stage.orientation + " vs " + stage.deviceOrientation); + + try + { + SaffronLogger.log("listen to rotation: isFullScreen : " + isFullScreen); + if (isFullScreen) + { + if (stage.deviceOrientation == StageOrientation.DEFAULT || stage.deviceOrientation == StageOrientation.UPSIDE_DOWN) + { + SaffronLogger.log("Make it exit from full screen : " + player); + //Make it exit from full screen ; + //player.setFullscreen( false ); + //isFullScreen = false ; + if (manualFullscreen == false) + player.setFullscreen(false); + } + else if (isLandScape(stage.orientation))// if(stage.orientation != revertLandScape(stage.deviceOrientation)) + { + SaffronLogger.log("Need to rotate to : " + stage.deviceOrientation); + stage.setOrientation(revertLandScape(stage.deviceOrientation)); + } + } + else + { + if (stage.deviceOrientation == StageOrientation.ROTATED_RIGHT || stage.deviceOrientation == StageOrientation.ROTATED_LEFT) + { + //Enter full screen + SaffronLogger.log("Make it full screen : " + player); + //player.setFullscreen( true ); + //isFullScreen = true ; + dynamicFullscreen = true; + player.setFullscreen(true); + } + } + } + catch (e:Error) + { + SaffronLogger.log("!!!!! Something happend: " + e.message); + } + + lastStageorientetion = stage.orientation; + lastDeviceOriention = stage.deviceOrientation; + } + + /**Pass the video native path for local files + *

MediaPlayer.CONTROLS_BASIC : controls:basic + MediaPlayer.CONTROLS_EMBEDDED : controls:embedded + MediaPlayer.CONTROLS_FULLSCREEN : controls:fullscreen + MediaPlayer.CONTROLS_NONE : controls:none*/ + public function playVideo(videoURL:String, autoPlay:Boolean = true, controlls:String = "controls:fullscreen"):void + { + this.videoURL = videoURL; + videoQualities = videoURL.split('|'); + if (this.stage == null) + { + throw "Add the player to the stage first"; + } + + var rect:Rectangle = createVewPort(); + + close(); + + NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE; + + isOpen = true; + player = (MediaPlayerClass as Object).service.createPlayerView(new MediaPlayerOptionsClass().setViewport(rect).setAutoPlay(true).showControls(true).enableBackgroundAudio(false)); + if (checkBandWidth == true && videoQualities.length>1) + { + bt = new BandwidthTester(0, videoQualities[index]); + bt.addEventListener(BandwidthTester.BAND_TESTED, play_video); + bt.addEventListener(BandwidthTester.TEST, band_test); + bt.start(); + } + else + { + + if (videoURL.indexOf('http') != 0) + { + videoURL = new File(videoURL).nativePath; + } + else + { + if (!DevicePrefrence.isTablet && videoQualities.length > 1) + { + videoURL = videoQualities[1]; + } + else + { + videoURL = videoQualities[0]; + } + } + player.load(videoURL); + } + //player = player.createPlayer( videoURL,rect.x,rect.y,rect.width,rect.height,autoPlay,controlls,true); + + //player = player.createPlayerView(new (MediaPlayerOptions as Object)().setViewport(new Rectangle( rect.x, rect.x, rect.width, rect.height))); + //var options:MediaPlayerOptions = new MediaPlayerOptions() + //setAutoPlay( true ); + + player.addEventListener(MediaPlayerEventClass.FULLSCREEN_ENTER, isFullscreened); + player.addEventListener(MediaPlayerEventClass.FULLSCREEN_EXIT, exitFullscreened); + player.addEventListener(MediaPlayerEventClass.LOADING, isLoading); + player.addEventListener(MediaPlayerEventClass.READY, isReady); + //player.addEventListener(MediaPlayerEventClass.LOADED, isPlaying); + //player.addEventListener(MediaPlayerEventClass.CLICK, isPlaying); + //player.addEventListener(com.distriqt.extension.mediaplayer.events.MediaPlayerEvent.STOPPED,exitFullscreened); + this.removeEventListener(Event.ENTER_FRAME, controlPlayerViewPort); + this.addEventListener(Event.ENTER_FRAME, controlPlayerViewPort); + this.addEventListener(Event.REMOVED_FROM_STAGE, unLoad); + } + + private function band_test(e):void + { + SaffronLogger.log("testSpeed:" + e.target.last_speed() + ' kb/s') + } + + private function play_video(e):void + { + var bw = e.target.getBandwidth(); + + SaffronLogger.log("Final bandwidth: " + bw + ' kb/s'); + SaffronLogger.log("Peak bandwidth: " + e.target.getPeak() + ' kb/s'); + lastIndex = index; + if (bw > 400) + { + index = 0; + } + else if (bw > 128) + { + index = 1; + } + else + { + index = 2; + } + + if (lastIndex != index) + { + changeIndex = true; + } + else + { + changeIndex = false; + } + + videoURL = videoQualities[index]; + nc = new NetConnection(); + nc.addEventListener(NetStatusEvent.NET_STATUS, nc_status); + nc.connect(null); + } + + private function nc_status(e:NetStatusEvent):void + { + switch (e.info.code) + { + case "NetConnection.Connect.Success": + connect_stream(); + break; + case "NetStream.Play.StreamNotFound": + SaffronLogger.log('Could not find video.'); + break; + } + } + + private function connect_stream():void + { + stream = new NetStream(nc); + stream.addEventListener(NetStatusEvent.NET_STATUS, nc_status); + stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, function(e) + { + }); + if (playFirstVideo == true) // play for first time + { + player.load(videoURL); + playFirstVideo = false; + } + else + { + if (changeIndex == true)// if video quaily change + { + position = player.position; + player.load(videoURL); + } + } + checkQuailyID = setTimeout(checkQuaily, 10000); + } + + private function checkQuaily():void + { + bt = new BandwidthTester(0, videoQualities[index]); + bt.addEventListener(BandwidthTester.BAND_TESTED, play_video); + bt.addEventListener(BandwidthTester.TEST, band_test); + bt.start(); + + } + + public function loadVideoWithQuality(degree:int):void + { + position = player.position; + index = degree; + + if (degree != 0) + { + videoURL = videoQualities[degree-1]; + player.load(videoURL); + } + else + { + bt = new BandwidthTester(0, videoQualities[index]); + bt.addEventListener(BandwidthTester.BAND_TESTED, play_video); + bt.addEventListener(BandwidthTester.TEST, band_test); + bt.start(); + } + } + + /**Is ready*/ + private function isReady(e:* = null):void + { + checkSeekID = setTimeout(seekPlayer, 1000); + } + + private function seekPlayer(e:* = null):void + { + //var seekSuccess:Boolean = player.seek(position); + //player.play(); + player.seek(position); + } + + /**Is loading*/ + private function isLoading(e:*):void + { + SaffronLogger.log("*** *** ***** isLoading 1 : " + isLoading); + } + + /**Is Loaded*/ + private function isLoaded(e:*):void + { + SaffronLogger.log("*** *** ***** isLoaded 2 : " + isLoaded); + + } + + /**is exited from full screen*/ + protected function exitFullscreened(event:Event):void + { + manualFullscreen = false; + dynamicFullscreen = false; + SaffronLogger.log("*** Exit full screen !! : " + event); + if (/*isFullScreen && */DevicePrefrence.isPortrait()) + { + stage.setOrientation(lastPortrateOrientetion); + SaffronLogger.log("StageOrientation1. >>> " + lastPortrateOrientetion); + } + isFullScreen = false; + } + + /**is full screen now*/ + protected function isFullscreened(event:Event):void + { + SaffronLogger.log("*** Set full screen !! : " + event); + if (/*!isFullScreen && */DevicePrefrence.isPortrait() && isFullScreen != true) + { + if (!DevicePrefrence.isIOS()) + { + var toLanscapeOrientation:String = revertLandScape(lastLandscapeOrientation); + stage.setOrientation(toLanscapeOrientation); + } + SaffronLogger.log("StageOrientation2. >>> " + toLanscapeOrientation); + if (!dynamicFullscreen) + manualFullscreen = true; + } + isFullScreen = true; + } + + private function revertLandScape(current:String):String + { + switch (current) + { + case StageOrientation.ROTATED_LEFT: + return StageOrientation.ROTATED_RIGHT; + default: + return StageOrientation.ROTATED_LEFT; + } + } + + private function isLandScape(current:String):Boolean + { + switch (current) + { + case StageOrientation.ROTATED_LEFT: + return true; + case StageOrientation.ROTATED_RIGHT: + return true; + } + return false; + } + + private function createVewPort():Rectangle + { + var rect:Rectangle = this.getBounds(stage); + /*SaffronLogger.log("|rect : "+rect); + + SaffronLogger.log("stage.fullScreenHeight : "+stage.fullScreenHeight); + SaffronLogger.log("stage.fullScreenWidth : "+stage.fullScreenWidth); + SaffronLogger.log("stage.stageHeight : "+stage.stageHeight); + SaffronLogger.log("stage.stageWidth : "+stage.stageWidth); + SaffronLogger.log("appStageWidth : "+appStageWidth); + SaffronLogger.log("appStageHeight : "+appStageHeight);*/ + + if (scl == 0 || lastStageW != stage.fullScreenWidth) + { + lastStageW = stage.fullScreenWidth; + + var sclX:Number = (stage.fullScreenWidth / appStageWidth); + var sclY:Number = (stage.fullScreenHeight / appStageHeight); + + deltaX = 0; + deltaY = 0; + if (sclX <= sclY) + { + scl = sclX; + deltaY = stage.fullScreenHeight - (appStageHeight) * scl; + } + else + { + scl = sclY; + deltaX = stage.fullScreenWidth - (appStageWidth) * scl; + } + } + + /*SaffronLogger.log("scl : "+scl); + SaffronLogger.log("deltaY : "+deltaY); + SaffronLogger.log("deltaX : "+deltaX);*/ + + rect.x *= scl; + rect.y *= scl; + rect.x += deltaX / 2; + rect.y += deltaY / 2; + rect.width *= scl; + rect.height *= scl; + + rect.x = round(rect.x); + rect.y = round(rect.y); + rect.width = round(rect.width); + rect.height = round(rect.height); + + return rect; + } + + /**Close player*/ + public function close():void + { + NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.NORMAL; + SaffronLogger.log("Hide the player"); + clearTimeout(checkSeekID); + clearTimeout(checkQuailyID); + try + { + player.removeEventListener(MediaPlayerEventClass.FULLSCREEN_ENTER, isFullscreened); + player.removeEventListener(MediaPlayerEventClass.FULLSCREEN_EXIT, exitFullscreened); + exitFullscreened(null); + isOpen = false; + player.destroy(); + player = null; + } + catch (e) + { + } + ; + this.removeEventListener(Event.ENTER_FRAME, controlPlayerViewPort); + } + + protected function unLoad(event:Event):void + { + clearInterval(debugIntervalId); + clearTimeout(checkSeekID); + clearTimeout(checkQuailyID); + //Alert.show("NORMALunLoad"); + NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.NORMAL; + if (player != null) + { + try + { + player.removeEventListener(MediaPlayerEventClass.FULLSCREEN_ENTER, isFullscreened); + player.removeEventListener(MediaPlayerEventClass.FULLSCREEN_EXIT, exitFullscreened); + exitFullscreened(null); + SaffronLogger.log("Remove player"); + //player.removeEventListener(com.distriqt.extension.mediaplayer.events.MediaPlayerEvent.STOPPED,exitFullscreened); + player.destroy(); + player = null; + + + } + catch (e) + { + SaffronLogger.log(">>e" + e); + } + } + this.removeEventListener(Event.ENTER_FRAME, controlPlayerViewPort); + + NativeApplication.nativeApplication.removeEventListener(Event.ACTIVATE, applicationActivated); + NativeApplication.nativeApplication.removeEventListener(Event.DEACTIVATE, applicationDeactivated); + } + + /**Controll the player place*/ + protected function controlPlayerViewPort(event:Event = null):void + { + if (isFullScreen || !isOpen) + { + return; + } + if (Obj.isAccesibleByMouse(this)) + { + var rect:Rectangle = createVewPort(); + player.resize(rect.x, rect.y, rect.width, rect.height); + } + else + { + player.resize(0, 0, 0, 0); + } + } + + private function round(num:Number):Number + { + return Math.round(num); + } + + /**Add the natives below :
+ * + com.distriqt.Core + com.distriqt.MediaPlayer*/ + public static function setId(distriqtId:String):void + { + myDistriqtId = distriqtId; + SaffronLogger.log("++++Distriqt media player starts+++"); + try + { + MediaPlayerClass = getDefinitionByName("com.distriqt.extension.mediaplayer.MediaPlayer") as Class; + MediaPlayerOptionsClass = getDefinitionByName("com.distriqt.extension.mediaplayer.MediaPlayerOptions") as Class; + MediaPlayerEventClass = getDefinitionByName("com.distriqt.extension.mediaplayer.events.MediaPlayerEvent") as Class; + SaffronLogger.log("+++Media player starts+++"); + } + catch (e) + { + MediaPlayerClass = null; + MediaPlayerOptionsClass = null; + MediaPlayerEventClass = null; + isSupports = false; + SaffronLogger.log('*********************** You dont have com.distriqt.extension.mediaplayer.MediaPlayer embeded in your project **************************'); + return; + } + try + { + (MediaPlayerClass as Object).init(myDistriqtId); + if ((MediaPlayerClass as Object).isSupported) + { + isSupports = true; + SaffronLogger.log("+++Media player is supports+++"); + } + else + { + SaffronLogger.log("+++media player is not supports+++"); + } + } + catch (e:Error) + { + SaffronLogger.log("+++Distriqt media player isSupports : " + e); + isSupports = false; + } + } + } +} \ No newline at end of file diff --git a/nativeClasses/player/DistriqtMediaPlayer.as b/nativeClasses/player/DistriqtMediaPlayer.as index 2e73f411..f03bd27d 100644 --- a/nativeClasses/player/DistriqtMediaPlayer.as +++ b/nativeClasses/player/DistriqtMediaPlayer.as @@ -90,7 +90,7 @@ if (!isSupports) { - trace("Distriqt media player is not supporting this device"); + SaffronLogger.log("Distriqt media player is not supporting this device"); } isFullScreen = false; this.graphics.beginFill(0x222222, 0); @@ -114,7 +114,7 @@ { appStageWidth = stage.stageWidth; appStageHeight = stage.stageHeight; - trace("DevicePrefrence.isPortrait() : " + DevicePrefrence.isPortrait()); + SaffronLogger.log("DevicePrefrence.isPortrait() : " + DevicePrefrence.isPortrait()); if (DevicePrefrence.isPortrait()) { debugIntervalId = setInterval(controlOrientationPortrate, 500); @@ -153,7 +153,7 @@ } } - private function controlOrientationPortrate() + private function controlOrientationPortrate():void { if (stage.deviceOrientation == StageOrientation.UNKNOWN || (lastDeviceOriention == stage.deviceOrientation && lastStageorientetion == stage.orientation && (isLandScape(stage.orientation) != isLandScape(stage.deviceOrientation)))) return; @@ -163,19 +163,19 @@ else lastLandscapeOrientation = stage.deviceOrientation; - trace("lastPortrateOrientetion : " + lastPortrateOrientetion); - trace("lastLandscapeOrientation : " + lastLandscapeOrientation); + SaffronLogger.log("lastPortrateOrientetion : " + lastPortrateOrientetion); + SaffronLogger.log("lastLandscapeOrientation : " + lastLandscapeOrientation); - trace(" stage.orientation : " + stage.orientation + " vs " + stage.deviceOrientation); + SaffronLogger.log(" stage.orientation : " + stage.orientation + " vs " + stage.deviceOrientation); try { - trace("listen to rotation: isFullScreen : " + isFullScreen); + SaffronLogger.log("listen to rotation: isFullScreen : " + isFullScreen); if (isFullScreen) { if (stage.deviceOrientation == StageOrientation.DEFAULT || stage.deviceOrientation == StageOrientation.UPSIDE_DOWN) { - trace("Make it exit from full screen : " + player); + SaffronLogger.log("Make it exit from full screen : " + player); //Make it exit from full screen ; //player.setFullscreen( false ); //isFullScreen = false ; @@ -184,7 +184,7 @@ } else if (isLandScape(stage.orientation))// if(stage.orientation != revertLandScape(stage.deviceOrientation)) { - trace("Need to rotate to : " + stage.deviceOrientation); + SaffronLogger.log("Need to rotate to : " + stage.deviceOrientation); stage.setOrientation(revertLandScape(stage.deviceOrientation)); } } @@ -193,7 +193,7 @@ if (stage.deviceOrientation == StageOrientation.ROTATED_RIGHT || stage.deviceOrientation == StageOrientation.ROTATED_LEFT) { //Enter full screen - trace("Make it full screen : " + player); + SaffronLogger.log("Make it full screen : " + player); //player.setFullscreen( true ); //isFullScreen = true ; dynamicFullscreen = true; @@ -203,7 +203,7 @@ } catch (e:Error) { - trace("!!!!! Something happend: " + e.message); + SaffronLogger.log("!!!!! Something happend: " + e.message); } lastStageorientetion = stage.orientation; @@ -316,17 +316,17 @@ } } - private function band_test(e):void + private function band_test(e:*):void { - trace("testSpeed:" + e.target.last_speed() + ' kb/s') + SaffronLogger.log("testSpeed:" + e.target.last_speed() + ' kb/s') } - private function play_video(e):void + private function play_video(e:*):void { - var bw = e.target.getBandwidth(); + var bw:* = e.target.getBandwidth(); - trace("Final bandwidth: " + bw + ' kb/s'); - trace("Peak bandwidth: " + e.target.getPeak() + ' kb/s'); + SaffronLogger.log("Final bandwidth: " + bw + ' kb/s'); + SaffronLogger.log("Peak bandwidth: " + e.target.getPeak() + ' kb/s'); lastIndex = index; if (bw > 400) { @@ -351,6 +351,8 @@ } videoURL = videoQualities[index]; + if(nc) + nc.removeEventListener(NetStatusEvent.NET_STATUS, nc_status); nc = new NetConnection(); nc.addEventListener(NetStatusEvent.NET_STATUS, nc_status); nc.connect(null); @@ -364,7 +366,7 @@ connect_stream(); break; case "NetStream.Play.StreamNotFound": - trace('Could not find video.'); + SaffronLogger.log('Could not find video.'); break; } } @@ -373,12 +375,12 @@ { stream = new NetStream(nc); stream.addEventListener(NetStatusEvent.NET_STATUS, nc_status); - stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, function(e) + stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, function(e:*):void { }); if (playFirstVideo == true) // play for first time { - player.load(videoURL); + if(player)player.load(videoURL); playFirstVideo = false; } else @@ -410,6 +412,7 @@ { videoURL = videoQualities[degree-1]; player.load(videoURL); + player.seek(position); } else { @@ -436,13 +439,13 @@ /**Is loading*/ private function isLoading(e:*):void { - trace("*** *** ***** isLoading 1 : " + isLoading); + SaffronLogger.log("*** *** ***** isLoading 1 : " + isLoading); } /**Is Loaded*/ private function isLoaded(e:*):void { - trace("*** *** ***** isLoaded 2 : " + isLoaded); + SaffronLogger.log("*** *** ***** isLoaded 2 : " + isLoaded); } @@ -451,11 +454,11 @@ { manualFullscreen = false; dynamicFullscreen = false; - trace("*** Exit full screen !! : " + event); + SaffronLogger.log("*** Exit full screen !! : " + event); if (/*isFullScreen && */DevicePrefrence.isPortrait()) { stage.setOrientation(lastPortrateOrientetion); - trace("StageOrientation1. >>> " + lastPortrateOrientetion); + SaffronLogger.log("StageOrientation1. >>> " + lastPortrateOrientetion); } isFullScreen = false; } @@ -463,7 +466,7 @@ /**is full screen now*/ protected function isFullscreened(event:Event):void { - trace("*** Set full screen !! : " + event); + SaffronLogger.log("*** Set full screen !! : " + event); if (/*!isFullScreen && */DevicePrefrence.isPortrait() && isFullScreen != true) { if (!DevicePrefrence.isIOS()) @@ -471,7 +474,7 @@ var toLanscapeOrientation:String = revertLandScape(lastLandscapeOrientation); stage.setOrientation(toLanscapeOrientation); } - trace("StageOrientation2. >>> " + toLanscapeOrientation); + SaffronLogger.log("StageOrientation2. >>> " + toLanscapeOrientation); if (!dynamicFullscreen) manualFullscreen = true; } @@ -504,14 +507,14 @@ private function createVewPort():Rectangle { var rect:Rectangle = this.getBounds(stage); - /*trace("|rect : "+rect); + /*SaffronLogger.log("|rect : "+rect); - trace("stage.fullScreenHeight : "+stage.fullScreenHeight); - trace("stage.fullScreenWidth : "+stage.fullScreenWidth); - trace("stage.stageHeight : "+stage.stageHeight); - trace("stage.stageWidth : "+stage.stageWidth); - trace("appStageWidth : "+appStageWidth); - trace("appStageHeight : "+appStageHeight);*/ + SaffronLogger.log("stage.fullScreenHeight : "+stage.fullScreenHeight); + SaffronLogger.log("stage.fullScreenWidth : "+stage.fullScreenWidth); + SaffronLogger.log("stage.stageHeight : "+stage.stageHeight); + SaffronLogger.log("stage.stageWidth : "+stage.stageWidth); + SaffronLogger.log("appStageWidth : "+appStageWidth); + SaffronLogger.log("appStageHeight : "+appStageHeight);*/ if (scl == 0 || lastStageW != stage.fullScreenWidth) { @@ -534,9 +537,9 @@ } } - /*trace("scl : "+scl); - trace("deltaY : "+deltaY); - trace("deltaX : "+deltaX);*/ + /*SaffronLogger.log("scl : "+scl); + SaffronLogger.log("deltaY : "+deltaY); + SaffronLogger.log("deltaX : "+deltaX);*/ rect.x *= scl; rect.y *= scl; @@ -558,7 +561,7 @@ public function close():void { NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.NORMAL; - trace("Hide the player"); + SaffronLogger.log("Hide the player"); clearTimeout(checkSeekID); clearTimeout(checkQuailyID); try @@ -591,7 +594,7 @@ player.removeEventListener(MediaPlayerEventClass.FULLSCREEN_ENTER, isFullscreened); player.removeEventListener(MediaPlayerEventClass.FULLSCREEN_EXIT, exitFullscreened); exitFullscreened(null); - trace("Remove player"); + SaffronLogger.log("Remove player"); //player.removeEventListener(com.distriqt.extension.mediaplayer.events.MediaPlayerEvent.STOPPED,exitFullscreened); player.destroy(); player = null; @@ -600,7 +603,7 @@ } catch (e) { - trace(">>e" + e); + SaffronLogger.log(">>e" + e); } } this.removeEventListener(Event.ENTER_FRAME, controlPlayerViewPort); @@ -639,20 +642,20 @@ return Math.round(num); } - /**Add the natives below : + /***/ public static function setId(distriqtId:String=null):void { myDistriqtId = distriqtId; - trace("++++Distriqt media player starts+++"); + SaffronLogger.log("++++Distriqt media player starts+++"); try { MediaPlayerClass = getDefinitionByName("com.distriqt.extension.mediaplayer.MediaPlayer") as Class; MediaPlayerOptionsClass = getDefinitionByName("com.distriqt.extension.mediaplayer.MediaPlayerOptions") as Class; MediaPlayerEventClass = getDefinitionByName("com.distriqt.extension.mediaplayer.events.MediaPlayerEvent") as Class; - trace("+++Media player starts+++"); + SaffronLogger.log("+++Media player starts+++"); } catch (e) { @@ -660,7 +663,7 @@ MediaPlayerOptionsClass = null; MediaPlayerEventClass = null; isSupports = false; - trace('*********************** You dont have com.distriqt.extension.mediaplayer.MediaPlayer embeded in your project **************************'); + SaffronLogger.log('*********************** You dont have com.distriqt.extension.mediaplayer.MediaPlayer embeded in your project **************************'); return; } try @@ -669,16 +672,16 @@ if ((MediaPlayerClass as Object).isSupported) { isSupports = true; - trace("+++Media player is supports+++"); + SaffronLogger.log("+++Media player is supports+++"); } else { - trace("+++media player is not supports+++"); + SaffronLogger.log("+++media player is not supports+++"); } } catch (e:Error) { - trace("+++Distriqt media player isSupports : " + e); + SaffronLogger.log("+++Distriqt media player isSupports : " + e); isSupports = false; } } diff --git a/nativeClasses/purchase/AdobeAppleInApp.as b/nativeClasses/purchase/AdobeAppleInApp.as index f2ad2167..883e98df 100644 --- a/nativeClasses/purchase/AdobeAppleInApp.as +++ b/nativeClasses/purchase/AdobeAppleInApp.as @@ -55,17 +55,17 @@ package nativeClasses.purchase /**Product detail fails*/ protected static function shoppingFails(event:Event):void { - trace("♠Un able to load products detail"); + SaffronLogger.log("♠Un able to load products detail"); onFails(); } protected static function continueShopping(event:ProductEvent):void { - trace("♠Continue shopping"); + SaffronLogger.log("♠Continue shopping"); removeAllListeners(); if(event.products.length>0) { - trace("♠Product is : "+JSON.stringify(event.products[0])); + SaffronLogger.log("♠Product is : "+JSON.stringify(event.products[0])); var currentID:String = event.products[0].identifier ; @@ -81,12 +81,12 @@ package nativeClasses.purchase //Restore transaction will not call ps.addEventListener(TransactionEvent.RESTORE_TRANSACTION_SUCCESS,finishTransactionSucceeded); - trace("♠Buy this : "+currentID); + SaffronLogger.log("♠Buy this : "+currentID); ps.makePurchaseTransaction(currentID); } else { - trace("♠The product code not found"); + SaffronLogger.log("♠The product code not found"); onFails(); } } @@ -94,7 +94,7 @@ package nativeClasses.purchase protected static function transactionFails(event:Event):void { removeAllListeners(); - trace("♠Transaction fails"); + SaffronLogger.log("♠Transaction fails"); onFails(); } @@ -102,7 +102,7 @@ package nativeClasses.purchase protected static function transactionCanseled(event:Event):void { removeAllListeners(); - trace("♠Transaction fails by user request"); + SaffronLogger.log("♠Transaction fails by user request"); onFails() } @@ -113,7 +113,7 @@ package nativeClasses.purchase var t:Transaction; if(e.transactions.length==0) { - trace("♠ transaction fails "); + SaffronLogger.log("♠ transaction fails "); onFails(); } while(e.transactions && i < e.transactions.length) @@ -128,9 +128,9 @@ package nativeClasses.purchase req.data = "{\"receipt-data\" : \""+ encodedReceipt+"\"}"; var ldr:URLLoader = new URLLoader(req); ldr.load(req); - trace("Finish this transaction:"+t.identifier); + SaffronLogger.log("Finish this transaction:"+t.identifier); ldr.addEventListener(Event.COMPLETE,function(e:Event):void{ - trace("LOAD COMPLETE: " + ldr.data); + SaffronLogger.log("LOAD COMPLETE: " + ldr.data); ps.addEventListener(TransactionEvent.FINISH_TRANSACTION_SUCCESS, finishTransactionSucceeded); ps.finishTransaction(t.identifier); }); @@ -142,17 +142,17 @@ package nativeClasses.purchase private static function printTransaction(t:Transaction):void { return ; - trace("-------------------in Print Transaction----------------------"); - trace("identifier :"+t.identifier); - trace("productIdentifier: "+ t.productIdentifier); - trace("productQuantity: "+t.productQuantity); - trace("date: "+t.date); - trace("receipt: "+t.receipt); - trace("error: "+t.error); - trace("originalTransaction: "+t.originalTransaction); + SaffronLogger.log("-------------------in Print Transaction----------------------"); + SaffronLogger.log("identifier :"+t.identifier); + SaffronLogger.log("productIdentifier: "+ t.productIdentifier); + SaffronLogger.log("productQuantity: "+t.productQuantity); + SaffronLogger.log("date: "+t.date); + SaffronLogger.log("receipt: "+t.receipt); + SaffronLogger.log("error: "+t.error); + SaffronLogger.log("originalTransaction: "+t.originalTransaction); if(t.originalTransaction) printTransaction(t.originalTransaction); - trace("---------end of print transaction----------------------------"); + SaffronLogger.log("---------end of print transaction----------------------------"); } protected static function finishTransactionSucceeded(event:Event):void diff --git a/nativeClasses/purchase/Purchase.as b/nativeClasses/purchase/Purchase.as index 33f88a57..c2fa3245 100644 --- a/nativeClasses/purchase/Purchase.as +++ b/nativeClasses/purchase/Purchase.as @@ -61,19 +61,19 @@ tag


=new Vector.(); productIdList.push(ticketId); - trace(">>> load store item info : "+ticketId); + SaffronLogger.log(">>> load store item info : "+ticketId); StoreKit.storeKit.addEventListener(StoreKitEvent.PRODUCT_DETAILS_LOADED,onProducts); StoreKit.storeKit.addEventListener(StoreKitErrorEvent.PRODUCT_DETAILS_FAILED, onProductsFailed); @@ -144,7 +144,7 @@ tag



0) { - trace("[ERR]: invalid product ids:"+e.invalidProductIds.join(",")); + SaffronLogger.log("[ERR]: invalid product ids:"+e.invalidProductIds.join(",")); } //StoreKit.storeKit. @@ -184,7 +184,7 @@ tag

>>>>>>>>>>>>> User ticket is : "+ticketId); + SaffronLogger.log(">>>>>>>>>>>>>> User ticket is : "+ticketId); StoreKit.storeKit.purchaseProduct(ticketId,howManyTickets); } @@ -193,7 +193,7 @@ tag



'+e); + SaffronLogger.log("* Purchess fails by no clear purpose : "+e.text+' > '+e); faild(5); } private static function onPurchaseSuccess(e:StoreKitEvent):void { removeListeners(); - trace("* Purchase Done! "+e.transactionId); + SaffronLogger.log("* Purchase Done! "+e.transactionId); StoreKit.storeKit.manualFinishTransaction(e.transactionId); done(0,e.transactionId); } @@ -230,12 +230,12 @@ tag

com.distriqt.PushNotification\n\tcom.distriqt.Core\n\n to your project xmls');// and below permitions to the tag : \n\n\n\n\t\n\n\n\n\t\n\n'; - } - } - } - - public static function isSupport():Boolean - { - loadClasses(); - if (PushNotificationsClass == null || PushNotificationsClass.isSupported == false) - return false - else - return true; - } - - /** - * You can receive server data on onNotifReceived function as a String - * @param onResult - * @param onNotifReceived - */ - public static function setup(onResult:Function = null,onNotifReceived:Function=null):void - { - NotifReceived = onNotifReceived ; - var PushNotifications:Object; - loadClasses(); - if(onResult==null) - { - onResult = function(text:String):void - { - //show registration ID : - trace(text); - } - } - if (PushNotificationsClass == null) - { - trace("push notification is null"); - onResult("windowsDebug"); - return; - } - try - { - if (PushNotificationsClass.isSupported) - { - trace("Push Notification supported") - if ((PushNotificationsClass as Object).service.isServiceSupported((ServiceClass as Object).FCM)) - { - var service:* = new ServiceClass((ServiceClass as Object).FCM, ""); - service.sandboxMode = false; - service.enableNotificationsWhenActive = true; - service.categories.push(new CategoryBuilderClass().setIdentifier("MESSAGE_CATEGORY").addAction(new ActionBuilderClass().setTitle("OK").setWillLaunchApplication(true).setIdentifier("OPEN_APP_BTN").build()).addAction(new ActionBuilderClass().setTitle("Cancel").setDestructive(true).setShouldCancelOnAction(true).setIdentifier("CANCEL_APP_BTN").build()).build()); - service.channels.push(new ChannelBuilderClass().setId("app_channel").setName("App Channel").build()); - (PushNotificationsClass as Object).service.addEventListener((RegistrationEventClass as Object).REGISTERING, registeringHandler); - (PushNotificationsClass as Object).service.addEventListener((RegistrationEventClass as Object).REGISTER_SUCCESS, registerSuccessHandler); - (PushNotificationsClass as Object).service.addEventListener((RegistrationEventClass as Object).CHANGED, registrationChangedHandler); - (PushNotificationsClass as Object).service.addEventListener((RegistrationEventClass as Object).REGISTER_FAILED, registerFailedHandler); - (PushNotificationsClass as Object).service.addEventListener((RegistrationEventClass as Object).ERROR,errorHandler); - (PushNotificationsClass as Object).service.addEventListener((AuthorisationEventClass as Object).CHANGED,authorisationChangedHandler); - (PushNotificationsClass as Object).service.addEventListener( (PushNotificationEventClass as Object).NOTIFICATION, notificationHandler ); - (PushNotificationsClass as Object).service.addEventListener( (PushNotificationEventClass as Object).NOTIFICATION_SELECTED, notificationHandler ); - (PushNotificationsClass as Object).service.addEventListener( (PushNotificationEventClass as Object).ACTION, actionHandler ); - (PushNotificationsClass as Object).service.addEventListener( (PushNotificationGroupEventClass as Class).GROUP_SELECTED, groupSelectedHandler ); - - (PushNotificationsClass as Object).service.setup(service); - requestAuthorisation(); - function registeringHandler(event:*):void - { - trace("Registration started"); - } - - function registerSuccessHandler(event:*):void - { - trace("Registration succeeded with ID: " + event.data); - deviceToken = event.data; - onResult(event.data); - } - - function registrationChangedHandler(event:*):void - { - trace("Registration ID has changed: " + event.data); - deviceToken = event.data; - onResult(event.data); - } - - function registerFailedHandler(event:*):void - { - trace("Registration failed"); - // onResult("Registration failed"); - } - - function errorHandler(event:*):void - { - trace("Registration error: " + event.data); - // onResult("Registration error"); - } - - } - else - { - trace("fcm notification is not support"); - // onResult("FCM Not Support"); - } - } - else - { - trace("notification is not support"); - // onResult("windows Debug"); - } - } - catch (e:Error) - { - trace("ERROR:" + e.message); - // onResult("error occured"); - } - } + private static var NotifReceived:Function; + private static var InAppMsgRecevied:Function; + public function DistriqtPushNotification() { - private static function notificationHandler( event:* ):void - { - trace( "Notification: ["+event.type+"] state="+event.applicationState+" startup="+event.startup ); - trace( event.payload );//{"google.delivered_priority":"high","TypeId":"2","google.ttl":2419200,"google.original_priority":"high","Id":"2096"} - trace(">>Complete data : "+JSON.stringify(event)); - if(NotifReceived!=null) - { - if(NotifReceived.length>0) - { - NotifReceived(event.payload); - } - else - { - NotifReceived(); - } - } - } + } - private static function actionHandler( event:* ):void - { - trace( "Action: ["+event.type+"] identifier="+event.identifier+" state="+event.applicationState+" startup="+event.startup ); - trace( event.payload ); - trace(">>Complete data : "+JSON.stringify(event)); - } + private static function loadClasses():void { + if (PushNotificationsClass == null) { + try { + CoreClass = getDefinitionByName("com.distriqt.extension.core.Core") as Class; + AuthorisationStatusClass = getDefinitionByName("com.distriqt.extension.pushnotifications.AuthorisationStatus") as Class; + PushNotificationsClass = getDefinitionByName("com.distriqt.extension.pushnotifications.PushNotifications") as Class; + ServiceClass = getDefinitionByName("com.distriqt.extension.pushnotifications.Service") as Class; + ActionBuilderClass = getDefinitionByName("com.distriqt.extension.pushnotifications.builders.ActionBuilder") as Class; + CategoryBuilderClass = getDefinitionByName("com.distriqt.extension.pushnotifications.builders.CategoryBuilder") as Class; + ChannelBuilderClass = getDefinitionByName("com.distriqt.extension.pushnotifications.builders.ChannelBuilder") as Class; + AuthorisationEventClass = getDefinitionByName("com.distriqt.extension.pushnotifications.events.AuthorisationEvent") as Class; + RegistrationEventClass = getDefinitionByName("com.distriqt.extension.pushnotifications.events.RegistrationEvent") as Class; + PushNotificationEventClass = getDefinitionByName("com.distriqt.extension.pushnotifications.events.PushNotificationEvent") as Class; + PushNotificationGroupEventClass = getDefinitionByName("com.distriqt.extension.pushnotifications.events.PushNotificationGroupEvent") as Class; + InAppMessagingEventClass = getDefinitionByName("com.distriqt.extension.pushnotifications.events.InAppMessagingEvent") as Class; + SaffronLogger.log("RegistrationEventClass : " + RegistrationEventClass); + } catch (e) { + SaffronLogger.log('Add \n\n\tcom.distriqt.PushNotification\n\tcom.distriqt.Core\n\n to your project xmls'); // and below permitions to the tag : \n\n\n\n\t\n\n\n\n\t\n\n'; + } + } + } - private static function groupSelectedHandler( event:* ):void - { - trace( "Group Selected: ["+event.type+"] groupKey="+event.groupKey+" state="+event.applicationState+" startup="+event.startup ); - for each (var payload:String in event.payloads) - { - trace( "PAYLOAD: "+ payload ); - } - trace(">>Complete data : "+JSON.stringify(event)); - } - - private static function authorisationChangedHandler(e:*):void - { - requestAuthorisation(); - } - - private static function requestAuthorisation(e:* = null):void - { - switch ((PushNotificationsClass as Object).service.authorisationStatus()) - { - case (AuthorisationStatusClass as Object).AUTHORISED: - // This device has been authorised. - // You can register this device and expect: - // - registration success/failed event, and; - // - notifications to be displayed - (PushNotificationsClass as Object).service.register(); - break; - - case (AuthorisationStatusClass as Object).NOT_DETERMINED: - // You are yet to ask for authorisation to display notifications - // At this point you should consider your strategy to get your user to authorise - // notifications by explaining what the application will provide - (PushNotificationsClass as Object).service.requestAuthorisation(); - break; - - case (AuthorisationStatusClass as Object).DENIED: - // The user has disabled notifications - // Advise your user of the lack of notifications as you see fit - - // For example: You can redirect to the settings page on iOS - if ((PushNotificationsClass as Object).service.canOpenDeviceSettings) - { - //PushNotifications.service.openDeviceSettings(); - } - break; - } - } - - } + public static function isSupport():Boolean { + loadClasses(); + if (PushNotificationsClass == null || PushNotificationsClass.isSupported == false) + return false + else + return true; + } -} \ No newline at end of file + /** + * You can receive server data on onNotifReceived & onInAppMsgRecevied function as a String + * @param onResult + * @param onNotifReceived + * @param onInAppMsgRecevied + */ + public static function setup(onResult:Function = null, onNotifReceived:Function = null, onInAppMsgRecevied:Function = null):void { + NotifReceived = onNotifReceived; + InAppMsgRecevied = onInAppMsgRecevied; + var PushNotifications:Object; + loadClasses(); + if (onResult == null) { + onResult = function(text:String):void { + //show registration ID : + SaffronLogger.log(text); + } + } + if (PushNotificationsClass == null) { + SaffronLogger.log("push notification is null"); + deviceToken = "windowsDebug"; + onResult(deviceToken); + return; + } + try { + (CoreClass as Object).init(); + trace("CoreClass init") + if (PushNotificationsClass.isSupported) { + SaffronLogger.log("Push Notification supported") + if ((PushNotificationsClass as Object).service.isServiceSupported((ServiceClass as Object).FCM)) { + SaffronLogger.log("FCM supported") + var service:* = new ServiceClass((ServiceClass as Object).FCM, ""); + service.sandboxMode = true; // false it in production mode!!! + service.setNotificationsWhenActive(true); + service.categories.push(new CategoryBuilderClass().setIdentifier("MESSAGE_CATEGORY").addAction(new ActionBuilderClass().setTitle("OK").setWillLaunchApplication(true).setIdentifier("OPEN_APP_BTN").build()).addAction(new ActionBuilderClass().setTitle("Cancel").setDestructive(true).setShouldCancelOnAction(true).setIdentifier("CANCEL_APP_BTN").build()).build()); + service.channels.push(new ChannelBuilderClass().setId("app_channel").setName("App Channel").build()); + (PushNotificationsClass as Object).service.addEventListener((RegistrationEventClass as Object).REGISTERING, registeringHandler); + (PushNotificationsClass as Object).service.addEventListener((RegistrationEventClass as Object).REGISTER_SUCCESS, registerSuccessHandler); + (PushNotificationsClass as Object).service.addEventListener((RegistrationEventClass as Object).CHANGED, registrationChangedHandler); + (PushNotificationsClass as Object).service.addEventListener((RegistrationEventClass as Object).REGISTER_FAILED, registerFailedHandler); + (PushNotificationsClass as Object).service.addEventListener((RegistrationEventClass as Object).ERROR, errorHandler); + (PushNotificationsClass as Object).service.addEventListener((AuthorisationEventClass as Object).CHANGED, authorisationChangedHandler); + (PushNotificationsClass as Object).service.addEventListener((PushNotificationEventClass as Object).NOTIFICATION, notificationHandler); + (PushNotificationsClass as Object).service.addEventListener((PushNotificationEventClass as Object).NOTIFICATION_SELECTED, notificationHandler); + (PushNotificationsClass as Object).service.addEventListener((PushNotificationEventClass as Object).ACTION, actionHandler); + (PushNotificationsClass as Object).service.addEventListener((PushNotificationGroupEventClass as Class).GROUP_SELECTED, groupSelectedHandler); + (PushNotificationsClass as Object).service.setup(service); + requestAuthorisation(); + function registeringHandler(event:*):void { + SaffronLogger.log("Registration started"); + } + + function registerSuccessHandler(event:*):void { + SaffronLogger.log("Registration succeeded with ID: " + event.data); + deviceToken = event.data; + onResult(event.data); + } + + function registrationChangedHandler(event:*):void { + SaffronLogger.log("Registration ID has changed: " + event.data); + deviceToken = event.data; + onResult(event.data); + } + + function registerFailedHandler(event:*):void { + SaffronLogger.log("Registration failed"); + // onResult("Registration failed"); + } + + function errorHandler(event:*):void { + SaffronLogger.log("Registration error: " + event.data); + // onResult("Registration error"); + } + + } else { + SaffronLogger.log("fcm notification is not support"); + // onResult("FCM Not Support"); + } + } else { + SaffronLogger.log("notification is not support"); + // onResult("windows Debug"); + } + } catch (e:Error) { + SaffronLogger.log("ERROR:" + e.message); + // onResult("error occured"); + } + } + + + private static function notificationHandler(event:*):void { + SaffronLogger.log("Notification: [" + event.type + "] state=" + event.applicationState + " startup=" + event.startup); + SaffronLogger.log(event.payload); //{"google.delivered_priority":"high","TypeId":"2","google.ttl":2419200,"google.original_priority":"high","Id":"2096"} + SaffronLogger.log(">>Complete data : " + JSON.stringify(event)); + if (NotifReceived != null) { + if (JSON.stringify(event.payload).length > 0) { + NotifReceived(event.payload); + } else { + NotifReceived(); + } + } + } + + private static function actionHandler(event:*):void { + SaffronLogger.log("Action: [" + event.type + "] identifier=" + event.identifier + " state=" + event.applicationState + " startup=" + event.startup); + SaffronLogger.log(event.payload); + SaffronLogger.log(">>Complete data : " + JSON.stringify(event)); + } + + private static function groupSelectedHandler(event:*):void { + SaffronLogger.log("Group Selected: [" + event.type + "] groupKey=" + event.groupKey + " state=" + event.applicationState + " startup=" + event.startup); + for each (var payload:String in event.payloads) { + SaffronLogger.log("PAYLOAD: " + payload); + } + SaffronLogger.log(">>Complete data : " + JSON.stringify(event)); + } + + public static function setupInAppMessaging():void { + // call this function after a few second after setup pushnotification + if (PushNotificationsClass == null) { + //windowsDebug; + return; + } + if ((PushNotificationsClass as Object).service.inAppMessaging.isSupported) { + (PushNotificationsClass as Object).service.inAppMessaging.addEventListener((InAppMessagingEventClass as Object).SELECTED, inappmessaging_selectedHandler); + SaffronLogger.log("InAppMessaging SUPPORTED") + } else { + SaffronLogger.log("InAppMessaging NOT SUPPORTED") + } + } + + public static function setTriggerForInAppMessaging(key:String, value:String = ""):void { + //at first,you must call setupInAppMessaging method + if (PushNotificationsClass == null) { + //windowsDebug; + return; + } + (PushNotificationsClass as Object).service.inAppMessaging.addTrigger(key, value); + } + + private static function inappmessaging_selectedHandler(event:*):void { + if (InAppMsgRecevied != null) { + if (JSON.stringify(event.data).length > 0) { + InAppMsgRecevied(JSON.stringify(event.data)); + } else { + InAppMsgRecevied(); + } + } + } + + private static function authorisationChangedHandler(e:*):void { + requestAuthorisation(); + } + + private static function requestAuthorisation(e:* = null):void { + switch ((PushNotificationsClass as Object).service.authorisationStatus()) { + case (AuthorisationStatusClass as Object).AUTHORISED: + // This device has been authorised. + // You can register this device and expect: + // - registration success/failed event, and; + // - notifications to be displayed + (PushNotificationsClass as Object).service.register(); + break; + + case (AuthorisationStatusClass as Object).NOT_DETERMINED: + // You are yet to ask for authorisation to display notifications + // At this point you should consider your strategy to get your user to authorise + // notifications by explaining what the application will provide + (PushNotificationsClass as Object).service.requestAuthorisation(); + break; + + case (AuthorisationStatusClass as Object).DENIED: + // The user has disabled notifications + // Advise your user of the lack of notifications as you see fit + + // For example: You can redirect to the settings page on iOS + if ((PushNotificationsClass as Object).service.canOpenDeviceSettings) { + //PushNotifications.service.openDeviceSettings(); + } + break; + } + } + + } + +} diff --git a/nativeClasses/sms/SMSHandlerNative.as b/nativeClasses/sms/SMSHandlerNative.as index d4a5f770..0601c235 100644 --- a/nativeClasses/sms/SMSHandlerNative.as +++ b/nativeClasses/sms/SMSHandlerNative.as @@ -52,7 +52,7 @@ package nativeClasses.sms catch(e) { smsClass = null ; - trace("com.doitflash.air.extensions.sms.SMS is not imported : "+e); + SaffronLogger.log("com.doitflash.air.extensions.sms.SMS is not imported : "+e); } if(smsClass!=null) { @@ -65,7 +65,7 @@ package nativeClasses.sms private static function getLastRecevedMessage():void { //sms.addEventListener(SMSEvent.ALL_SMS, allSms); - trace("lastSMSId : "+lastSMSId); + SaffronLogger.log("lastSMSId : "+lastSMSId); sms.addEventListener((smsEventObject as Object).NEW_PERIOD_SMS, allSmsPeriod); sms.getSmsAfterId(lastSMSId); } @@ -74,7 +74,7 @@ package nativeClasses.sms private static function allSmsPeriod(e:*):void { var arr:Array = e.param; - trace("All sms Period loaded1 : "+JSON.stringify(arr,null,' ')); + SaffronLogger.log("All sms Period loaded1 : "+JSON.stringify(arr,null,' ')); if(arr!=null) { @@ -82,12 +82,12 @@ package nativeClasses.sms { lastSMSId = arr[0].id ; GlobalStorage.save(id_lastsms_id,lastSMSId); - trace(">>>> change last sms id to load : "+lastSMSId); + SaffronLogger.log(">>>> change last sms id to load : "+lastSMSId); sms.getSmsAfterId(lastSMSId); } else { - trace("-No new SMS"); + SaffronLogger.log("-No new SMS"); lastSMSLoaded = true ; sms.removeEventListener((smsEventObject as Object).NEW_PERIOD_SMS, allSmsPeriod); @@ -107,10 +107,10 @@ package nativeClasses.sms setUp(); if(sms==null) { - trace("SMS native is not supports on this device"); + SaffronLogger.log("SMS native is not supports on this device"); return ; } - trace(">>>lastSMSLoaded : "+lastSMSLoaded); + SaffronLogger.log(">>>lastSMSLoaded : "+lastSMSLoaded); if(lastSMSLoaded) { @@ -130,7 +130,7 @@ package nativeClasses.sms /**Request smses after last sms id*/ private static function loadLastSMSes():void { - //trace("....load sms after "+lastSMSId); + //SaffronLogger.log("....load sms after "+lastSMSId); sms.getSmsAfterId(lastSMSId); } @@ -139,7 +139,7 @@ package nativeClasses.sms private static function receivedSMS(e:*):void { var arr:Array = e.param; - //trace("All sms Period loaded2 : "+JSON.stringify(arr,null,' ')); + //SaffronLogger.log("All sms Period loaded2 : "+JSON.stringify(arr,null,' ')); if(arr!=null) { @@ -147,7 +147,7 @@ package nativeClasses.sms { lastSMSId = arr[0].id ; GlobalStorage.save(id_lastsms_id,lastSMSId); - trace(">>>> change last sms id to load2 : "+lastSMSId); + SaffronLogger.log(">>>> change last sms id to load2 : "+lastSMSId); for(var i:int ; i>>header:"+headInPart); + SaffronLogger.log(">>>header:"+headInPart); responsHeaders.push(new URLRequestHeader(headInPart[0],headInPart[1])); } } - trace(">>>Body:"+serverAnswerParts[1]); + SaffronLogger.log(">>>Body:"+serverAnswerParts[1]); } protected function connectionError(event:IOErrorEvent):void { - trace("Server connection fails"); + SaffronLogger.log("Server connection fails"); this.dispatchEvent(new IOErrorEvent(IOErrorEvent.IO_ERROR)); } protected function onConnectedToSocket(event:Event):void { - trace("Server connected, Send request : "+rawBodyToSend); + SaffronLogger.log("Server connected, Send request : "+rawBodyToSend); senderSocket.writeUTFBytes(rawBodyToSend); senderSocket.flush(); } diff --git a/netManager/ImageLoader.as b/netManager/ImageLoader.as index ff303c13..007818c4 100644 --- a/netManager/ImageLoader.as +++ b/netManager/ImageLoader.as @@ -60,12 +60,12 @@ package netManager //this.alpha = 0.5 ; loadIn = loadInThisArea; - //trace("ImageLoader Initialize : "+loadIn); + //SaffronLogger.log("ImageLoader Initialize : "+loadIn); myWidth = MyWidth ; myHeight = MyHeight ; - //trace('Create image width '+MyWidth+' width.'); + //SaffronLogger.log('Create image width '+MyWidth+' width.'); loader = new Loader(); @@ -120,7 +120,7 @@ package netManager protected function unLoad(event:Event):void { - //trace("Cansel "+imageURL+" downloading"); + //SaffronLogger.log("Cansel "+imageURL+" downloading"); this.removeChildren(); myURLSaver.cansel(); @@ -155,7 +155,7 @@ package netManager protected function imageLoadingStarted(ev:URLSaverEvent):void { - //trace('downloading : '+ev.precent); + //SaffronLogger.log('downloading : '+ev.precent); if(myPreLoader!=null && myPreLoader.hasOwnProperty('setUp')) { (myPreLoader['setUp'] as Function).apply(ev.precent); @@ -165,11 +165,11 @@ package netManager /**Generate pre loader*/ private function showPreLoader():void { - //trace("ask to load pre loader"); + //SaffronLogger.log("ask to load pre loader"); if(myPreLoader == null && preLoaderClass!=null) { - //trace("this is pre loader"); + //SaffronLogger.log("this is pre loader"); myPreLoader = new preLoaderClass() ; this.addChild(myPreLoader) ; myPreLoader.x = myWidth/2 ; @@ -197,7 +197,7 @@ package netManager protected function urlProblem(event:*):void { - //trace('cansel!!'); + //SaffronLogger.log('cansel!!'); myURLSaver.cansel(); myURLSaver.deletFileIfExists(imageURL); //Bug found, i was dispatched IMAGE_LOADED by mistake. @@ -217,7 +217,7 @@ package netManager } else { - //trace("myWidth : "+myWidth+" , myHeight : "+myHeight+" > "+imageURL); + //SaffronLogger.log("myWidth : "+myWidth+" , myHeight : "+myHeight+" > "+imageURL); image = loader.content as Bitmap ; if(myWidth!=0) @@ -229,9 +229,9 @@ package netManager image.height = myHeight ; } // - //trace("image current hieght : "+image.height); + //SaffronLogger.log("image current hieght : "+image.height); // - //trace("loadIn : "+loadIn); + //SaffronLogger.log("loadIn : "+loadIn); if(loadIn) { @@ -242,7 +242,7 @@ package netManager image.scaleX = image.scaleY = Math.max(image.scaleX,image.scaleY); } - //trace("image final hieght : "+image.height); + //SaffronLogger.log("image final hieght : "+image.height); if(myWidth==0) { diff --git a/netManager/UDPManager.as b/netManager/UDPManager.as new file mode 100644 index 00000000..3a5c31cc --- /dev/null +++ b/netManager/UDPManager.as @@ -0,0 +1,71 @@ +package netManager +{ + import flash.net.DatagramSocket; + import flash.utils.ByteArray; + import flash.events.DatagramSocketDataEvent; + import flash.utils.getTimer; + + public class UDPManager + { + private static var myUDP:DatagramSocket ; + + private static var onReceiveFunction:Function ; + + private static var lastMassageDeliveryTime:int ; + + private static function setUp():void + { + if(myUDP==null) + { + myUDP = new DatagramSocket(); + myUDP.addEventListener(DatagramSocketDataEvent.DATA,onDataReceived); + } + } + + private static function onDataReceived(e:DatagramSocketDataEvent):void + { + trace("Message received"); + lastMassageDeliveryTime = getTimer(); + var message:String = e.data.toString(); + if(onReceiveFunction!=null && onReceiveFunction.length>0) + onReceiveFunction(message) + } + + public static function getMessageOnPort(onRespond:Function,myPort:uint):void + { + trace("myUDP.connected : "+myUDP.connected); + trace("myUDP.localPort : " +myUDP.localPort); + onReceiveFunction = onRespond ; + if(myUDP.localPort==0 || ( myUDP.localPort!=myPort)) + { + if(myUDP.connected) + myUDP.close(); + + myUDP.bind(myPort); + myUDP.receive(); + } + } + + public static function isConnected():Boolean + { + return myUDP.connected && myUDP.localPort !=0; + } + + public static function sendMessageTo(message:String,onRespond:Function,targetIp:String,targetPort:uint,localPort:uint=2000):void + { + setUp(); + trace("Message sent:"+message); + getMessageOnPort(onRespond,localPort); + var data:ByteArray = new ByteArray(); + data.writeUTFBytes(message); + myUDP.send(data,0,0,targetIp,targetPort); + myUDP.receive(); + } + + /**Returns the last time that connection accured */ + public function getLastConnectionTimeout():int + { + return getTimer()-lastMassageDeliveryTime; + } + } +} \ No newline at end of file diff --git a/netManager/downloadManager/CashedDownloadData.as b/netManager/downloadManager/CashedDownloadData.as index 208ff8af..498ed93b 100644 --- a/netManager/downloadManager/CashedDownloadData.as +++ b/netManager/downloadManager/CashedDownloadData.as @@ -54,7 +54,7 @@ package netManager.downloadManager /**start over download manager*/ private function startOver():void { - //trace('start loading'); + //SaffronLogger.log('start loading'); downloader = new FileDownloader(url,file.length); downloader.addEventListener(DownloadManagerEvents.DOWNLOAD_PROGRESS,someDataLoaded); downloader.addEventListener(DownloadManagerEvents.DOWNLOAD_COMPLETE,fileIsComplete); @@ -64,7 +64,7 @@ package netManager.downloadManager private function fileIsNotExists(e:DownloadManagerEvents) { - trace('file is not exists on server'); + SaffronLogger.log('file is not exists on server'); this.dispatchEvent(new DownloadManagerEvents(DownloadManagerEvents.URL_IS_NOT_EXISTS,0,null,url)); } @@ -86,7 +86,7 @@ package netManager.downloadManager { url = URL ; } - trace('cansel loading'); + SaffronLogger.log('cansel loading'); stop(); removeMyCashedFile(); } @@ -101,7 +101,7 @@ package netManager.downloadManager /**cash this data*/ private function someDataLoaded(e:DownloadManagerEvents):void { - //trace('download precent is : '+e.precent+' new bytes are : '+e.loadedFile.length); + //SaffronLogger.log('download precent is : '+e.precent+' new bytes are : '+e.loadedFile.length); saveNewBytes(e.loadedFile); this.dispatchEvent(new DownloadManagerEvents(DownloadManagerEvents.DOWNLOAD_PROGRESS,e.precent,null,url)); } @@ -111,7 +111,7 @@ package netManager.downloadManager { if(tellIfCompleted()) { - //trace('this file is completed befor'); + //SaffronLogger.log('this file is completed befor'); fileIsComplete(); } else @@ -124,7 +124,7 @@ package netManager.downloadManager /**file is downloaded*/ private function fileIsComplete(e:DownloadManagerEvents=null):void { - //trace('tell that the file is completed'); + //SaffronLogger.log('tell that the file is completed'); markCompletedDownload(); this.dispatchEvent(new DownloadManagerEvents(DownloadManagerEvents.DOWNLOAD_COMPLETE,1,file,url)); } @@ -156,7 +156,7 @@ package netManager.downloadManager /**load the byteArray of currentID , it will load shared object from static shared object*/ private function loadIfExist():void { - //trace('try to load cashed download file'); + //SaffronLogger.log('try to load cashed download file'); loadSavedFiles() ; file = new ByteArray(); for(var i:uint = 0 ; i<(savedFiles.data[shValName] as Array).length ; i++) @@ -165,7 +165,7 @@ package netManager.downloadManager { file.writeBytes((savedFiles.data[shValName][i][1] as ByteArray)); file.position = 0 ; - //trace('cashed file is : '+file.length); + //SaffronLogger.log('cashed file is : '+file.length); break ; } } @@ -187,10 +187,10 @@ package netManager.downloadManager break ; } } - //trace('foundedI : '+foundedI); + //SaffronLogger.log('foundedI : '+foundedI); file.position = 0 ; savedFiles.data[shValName][foundedI] = [url,file]; - //trace('saved file is : '+(savedFiles.data[shValName][foundedI][1] as ByteArray).length); + //SaffronLogger.log('saved file is : '+(savedFiles.data[shValName][foundedI][1] as ByteArray).length); savedFiles.flush(); } diff --git a/netManager/downloadManager/DownloadManager.as b/netManager/downloadManager/DownloadManager.as index 681e2bc0..c65a913e 100644 --- a/netManager/downloadManager/DownloadManager.as +++ b/netManager/downloadManager/DownloadManager.as @@ -52,7 +52,7 @@ package netManager.downloadManager } if(!oldFile) { - //trace('sart load'); + //SaffronLogger.log('sart load'); var downlaodCatcher:CashedDownloadData = new CashedDownloadData(); downloadList.push(downlaodCatcher); downlaodCatcher.addEventListener(DownloadManagerEvents.DOWNLOAD_PROGRESS,manageProgress); @@ -129,7 +129,7 @@ package netManager.downloadManager /**send feed back of any rpogress*/ private static function manageProgress(e:DownloadManagerEvents):void { - //trace('loading ... '); + //SaffronLogger.log('loading ... '); contentLoaderInfo.dispatchEvent(new DownloadManagerEvents(DownloadManagerEvents.DOWNLOAD_PROGRESS,e.precent,null,e.urlID)); } @@ -137,7 +137,7 @@ package netManager.downloadManager /**send feed back of any download finishing*/ private static function manageFinished(e:DownloadManagerEvents):void { - //trace('load finished'); + //SaffronLogger.log('load finished'); contentLoaderInfo.dispatchEvent(new DownloadManagerEvents(DownloadManagerEvents.DOWNLOAD_COMPLETE,e.precent,e.loadedFile,e.urlID)); } @@ -145,7 +145,7 @@ package netManager.downloadManager /**send feed back of any download finishing*/ private static function manageWrongURLs(e:DownloadManagerEvents):void { - trace('file url is wrong'); + SaffronLogger.log('file url is wrong'); forget(e.urlID); contentLoaderInfo.dispatchEvent(new DownloadManagerEvents(DownloadManagerEvents.URL_IS_NOT_EXISTS,0,null,e.urlID)); } diff --git a/netManager/downloadManager/FileDownloader.as b/netManager/downloadManager/FileDownloader.as index 567c3002..e437a79f 100644 --- a/netManager/downloadManager/FileDownloader.as +++ b/netManager/downloadManager/FileDownloader.as @@ -44,27 +44,27 @@ package netManager.downloadManager indexByte = indexRangeOfDownload ; var header:URLRequestHeader = new URLRequestHeader("range","bytes="+indexRangeOfDownload+"-"); - trace('start download from : '+indexRangeOfDownload); + SaffronLogger.log('start download from : '+indexRangeOfDownload); downloadRequest = new URLRequest(target); downloadRequest.requestHeaders.push(header); loader.addEventListener(ProgressEvent.PROGRESS,tellPrecent); loader.addEventListener(IOErrorEvent.IO_ERROR,reLoad); loader.load(downloadRequest); - trace('try to load '+downloadRequest.url); + SaffronLogger.log('try to load '+downloadRequest.url); } /**close this downloader public function close():void { - trace('close downloader'); + SaffronLogger.log('close downloader'); if(loader. }*/ /**start over the downloading*/ private function reLoad(e:*=null):void { - trace('reload'); + SaffronLogger.log('reload'); //this.dispatchEvent(new DownloadManagerEvents(DownloadManagerEvents.DOWNLOAD_PROGRESS)); this.dispatchEvent(new DownloadManagerEvents(DownloadManagerEvents.RELOAD_REQUIRED)); } @@ -74,7 +74,7 @@ package netManager.downloadManager { if(false && e.bytesTotal '+myLoadedBytes.bytesAvailable); - - //SavedDatas.save(onlineURL,offlineURL); - //trace('offile file saved on : '+onlineURL); - storage.data[onlineURL] = offlineURL ; - datestorage.data[onlineURL] = new Date().time ; - //trace("datestorage.data[onlineURL] : " +datestorage.data[onlineURL]); - datestorage.flush(); - storage.flush(); + + if(oflineFile.nativePath.indexOf(File.applicationStorageDirectory.nativePath)!=-1) + { + startSaveItem(); + } + else + { + FileManager.controlFilePermission(startSaveItem,true); + } + + function startSaveItem():void + { + fileSaver = new FileStream(); + fileSaver.addEventListener(Event.CLOSE,fileIsSaved); + fileSaver.addEventListener(IOErrorEvent.IO_ERROR,fileSaverError); + fileSaver.openAsync(oflineFile,FileMode.WRITE); + fileSaver.writeBytes(myLoadedBytes); + fileSaver.close(); + SaffronLogger.log("Save the imafe on device...................................... : "+oflineFile.url+' > '+myLoadedBytes.bytesAvailable); + + //SavedDatas.save(onlineURL,offlineURL); + //SaffronLogger.log('offile file saved on : '+onlineURL); + storage.data[onlineURL] = offlineURL ; + datestorage.data[onlineURL] = new Date().time ; + //SaffronLogger.log("datestorage.data[onlineURL] : " +datestorage.data[onlineURL]); + datestorage.flush(); + storage.flush(); + } } protected function fileSaverError(event:IOErrorEvent):void { - //trace("URL saver file is not write able. saveLoadedByte"); + //SaffronLogger.log("URL saver file is not write able. saveLoadedByte"); fileSaver.close(); loadOflineFile(); } protected function fileIsSaved(event:Event):void { - //trace("******************************** File is ready to save on the device ****************"); + //SaffronLogger.log("******************************** File is ready to save on the device ****************"); loadOflineFile(); } @@ -486,7 +500,7 @@ package netManager.urlSaver } catch(e) { - trace("I cannot find this offline file"); + SaffronLogger.log("I cannot find this offline file"); } var waitTillFileLoaded:Boolean = false ; //I have to open the file to contrill the file size @@ -512,7 +526,7 @@ package netManager.urlSaver { myLoadedBytes = null ; } - //trace("File size : "+fileTarger.size+" urlLoader : "+urlLoader); + //SaffronLogger.log("File size : "+fileTarger.size+" urlLoader : "+urlLoader); if(!waitTillFileLoaded) { completeLoadRequestAndDispatchEvent(); @@ -523,7 +537,7 @@ package netManager.urlSaver { if(fileTarger!=null && fileTarger.exists && (fileTarger.size!=0 || (myLoadedBytes!=null && myLoadedBytes.length!=0) || (urlLoader!=null && urlLoader.data !=null && urlLoader.data.length!=0))) { - //trace("offlineURL : "+offlineURL); + //SaffronLogger.log("offlineURL : "+offlineURL); //Cansel the file aftre downloaded file contrilled cansel(); @@ -531,9 +545,9 @@ package netManager.urlSaver } else { - trace("Offline url is not exists : "+offlineURL); + SaffronLogger.log("Offline url is not exists : "+offlineURL); URLSaver.deletFileIfExists(onlineURL); - trace("So I have to download it again from "+onlineURL); + SaffronLogger.log("So I have to download it again from "+onlineURL); load(onlineURL,savedAcceptableDate,fileExtention,fileNameOnStorage,mySpecialFolder); } } @@ -541,7 +555,7 @@ package netManager.urlSaver protected function fileCannotLoad(event:IOErrorEvent):void { - trace("Unable to load file"); + SaffronLogger.log("Unable to load file"); fileLoader.close(); completeLoadRequestAndDispatchEvent(); } @@ -549,7 +563,7 @@ package netManager.urlSaver protected function fileLoaded(event:Event):void { - //trace("***********************************************File is ready to load***************"); + //SaffronLogger.log("***********************************************File is ready to load***************"); myLoadedBytes = new ByteArray(); fileLoader.readBytes(myLoadedBytes,0,fileLoader.bytesAvailable); fileLoader.close(); @@ -558,13 +572,13 @@ package netManager.urlSaver //////////////////////////////////////////////delete temporary /**Delete images older than this date*/ - public static function deleteDatasOlderThan(date:Date) + public static function deleteDatasOlderThan(date:Date):void { - for(var i in datestorage.data) + for(var i:* in datestorage.data) { if(datestorage.data[i] < date.time) { - //trace("This file is old : "+i); + //SaffronLogger.log("This file is old : "+i); deletFileIfExists(i); } } @@ -577,11 +591,11 @@ package netManager.urlSaver if(fileChecker.exists) { fileChecker.deleteFile(); - //trace("this file deleted : "+imageList[i]); + //SaffronLogger.log("this file deleted : "+imageList[i]); } else { - //trace("File not found : "+imageList[i]); + //SaffronLogger.log("File not found : "+imageList[i]); } } //Delete all saved datas whenever all provess tested @@ -601,7 +615,7 @@ package netManager.urlSaver var localFileURL:String = storage.data[fileURL] ; if(localFileURL == null) { - trace("i can not find your image"); + SaffronLogger.log("i can not find your image"); return false ; } else @@ -609,13 +623,13 @@ package netManager.urlSaver var fileChecker:File = new File(localFileURL); if(fileChecker.exists) { - trace("this file is deleted : "+fileChecker.url); + SaffronLogger.log("this file is deleted : "+fileChecker.url); try { fileChecker.deleteFile(); }catch(e) { - trace("this file is not deleted : "+fileChecker.url); + SaffronLogger.log("this file is not deleted : "+fileChecker.url); }; } diff --git a/notification/DistriqtNotificationManager.as b/notification/DistriqtNotificationManager.as index 4e64cd45..4b216391 100644 --- a/notification/DistriqtNotificationManager.as +++ b/notification/DistriqtNotificationManager.as @@ -26,7 +26,7 @@ public function DistriqtNotificationManager(ONESIGNAL_APP_ID_p:String='',DISTRIQT_ID:String='') { super(); - trace("*********Distriqt notification"); + SaffronLogger.log("*********Distriqt notification"); PlayServices.ControllDevicePlayService(); @@ -41,17 +41,17 @@ PushNotifications.service.setup( service ); - trace('notification sat up completly'); + SaffronLogger.log('notification sat up completly'); autorization(); } else { - trace("!!! Push is not supporting here"); + SaffronLogger.log("!!! Push is not supporting here"); } } catch (e:Error) { - trace("DistriqtNotificationManager Error : "+ e ); + SaffronLogger.log("DistriqtNotificationManager Error : "+ e ); } } @@ -59,12 +59,12 @@ { try { - trace("autorization starts : "+PushNotifications.service.authorisationStatus()); + SaffronLogger.log("autorization starts : "+PushNotifications.service.authorisationStatus()); checkAuthorisation(); } catch(e:Error) { - trace("Error!! "+e.message); + SaffronLogger.log("Error!! "+e.message); } } @@ -73,7 +73,7 @@ switch (PushNotifications.service.authorisationStatus()) { case AuthorisationStatus.AUTHORISED: - trace(" This device has been authorised."); + SaffronLogger.log(" This device has been authorised."); // You can register this device and expect: // - registration success/failed event, and; // - notifications to be displayed @@ -81,7 +81,7 @@ break; case AuthorisationStatus.NOT_DETERMINED: - trace(" You are yet to ask for authorisation to display notifications"); + SaffronLogger.log(" You are yet to ask for authorisation to display notifications"); // At this point you should consider your strategy to get your user to authorise // notifications by explaining what the application will provide PushNotifications.service.addEventListener( AuthorisationEvent.CHANGED, authorisationChangedHandler ); @@ -89,7 +89,7 @@ break; case AuthorisationStatus.DENIED: - trace(" The user has disabled notifications"); + SaffronLogger.log(" The user has disabled notifications"); // Advise your user of the lack of notifications as you see fit // For example: You can redirect to the settings page on iOS @@ -103,7 +103,7 @@ private function registerNotifications():void { - trace("Register notification"); + SaffronLogger.log("Register notification"); //PushNotifications.service.addEventListener( PushNotificationEvent.NOTIFICATION, notificationHandler ); PushNotifications.service.addEventListener( PushNotificationEvent.NOTIFICATION_SELECTED, notificationHandler ); PushNotifications.service.addEventListener( RegistrationEvent.REGISTER_SUCCESS, registerSuccessHandler ); @@ -117,19 +117,19 @@ } catch(e:Error) { - trace("Error 2 ! : "+e.message); + SaffronLogger.log("Error 2 ! : "+e.message); } } private function proplem(e:RegistrationEvent):void { - trace("*** Distriqt notification error : "+e); + SaffronLogger.log("*** Distriqt notification error : "+e); } private function registerSuccessHandler( event:RegistrationEvent ):void { token = PushNotifications.service.getServiceToken(); - trace( "Registration succeeded with ID: " + token ); + SaffronLogger.log( "Registration succeeded with ID: " + token ); this.dispatchEvent(new NotificationEvent (NotificationEvent.TOKEN_REGISTER_COMPELETED,makePNEventManager())) } @@ -142,8 +142,8 @@ private function notificationHandler( event:PushNotificationEvent ):void { - trace( "Notification: ["+event.type+"] state="+event.applicationState+" startup="+event.startup ); - trace( event.payload ); + SaffronLogger.log( "Notification: ["+event.type+"] state="+event.applicationState+" startup="+event.startup ); + SaffronLogger.log( event.payload ); var recevedObjecg:Object = JSON.parse(event.payload); var additionalData:Object = recevedObjecg.additionalData ; @@ -152,7 +152,7 @@ private function authorisationChangedHandler( event:AuthorisationEvent ):void { - trace(" Check the authorisation state again (as above)"); + SaffronLogger.log(" Check the authorisation state again (as above)"); PushNotifications.service.removeEventListener( AuthorisationEvent.CHANGED, authorisationChangedHandler ); checkAuthorisation(); } diff --git a/notification/NotificationEvent.as b/notification/NotificationEvent.as index 2b14cbd5..1b4bf925 100644 --- a/notification/NotificationEvent.as +++ b/notification/NotificationEvent.as @@ -4,8 +4,8 @@ package notification public class NotificationEvent extends Event { - public static const TOKEN_REGISTER_COMPELETED="TOKEN_REGISTER_COMPELETED" - public static const TOKEN_REGISTER_START = "TOKEN_REGISTER_START" + public static const TOKEN_REGISTER_COMPELETED:String="TOKEN_REGISTER_COMPELETED" + public static const TOKEN_REGISTER_START:String = "TOKEN_REGISTER_START" public static const NOTIFICATION:String = "NOTIFICATION"; public static const FOREGROUND_NOTIFICATION:String = "FOREGROUND_NOTIFICATION"; diff --git a/notification/NotificationManager.as b/notification/NotificationManager.as index 43011e59..519f8e78 100644 --- a/notification/NotificationManager.as +++ b/notification/NotificationManager.as @@ -35,7 +35,7 @@ { super(); autoAlertBox = autoAlerOnNativeBox ; - trace("SetUp easy push"); + SaffronLogger.log("SetUp easy push"); ONESIGNAL_APP_ID = ONESIGNAL_APP_ID_p ; GCM_PROJECT_NUMBER = GCM_PROJECT_NUMBER_p ; @@ -60,7 +60,7 @@ public static function setup(ONESIGNAL_APP_ID_p:String='',GCM_PROJECT_NUMBER_p:String='',autoAlerOnNativeBox:Boolean=true):NotificationManager { autoAlertBox = autoAlerOnNativeBox ; - trace("SetUp easy push"); + SaffronLogger.log("SetUp easy push"); Notification_Event = new NotificationManager(ONESIGNAL_APP_ID_p,GCM_PROJECT_NUMBER_p,autoAlerOnNativeBox) ONESIGNAL_APP_ID = ONESIGNAL_APP_ID_p GCM_PROJECT_NUMBER = GCM_PROJECT_NUMBER_p @@ -69,7 +69,7 @@ return Notification_Event ; } - private function EasyPushExample() + private function EasyPushExample() :void { //Controll permissions↓ @@ -85,7 +85,7 @@ "\t"; if(DevicePrefrence.isItPC && currentPermissions.indexOf("application-identifier")==-1) { - trace("You have to add below permission on \n\n') ; + SaffronLogger.log("You have to add below permission on \n\n') ; } //control android permission : >>> "+e); + SaffronLogger.log("Esy push >>>> "+e); } log("did init OneSignal."); @@ -265,7 +265,7 @@ ///////////////////end event private function log(msg:String):void { - trace("[Push Notificatoni]"+msg); + SaffronLogger.log("[Push Notificatoni]"+msg); } //com.milkmangames.nativeextensions.events.PNEvent diff --git a/otherPlatforms/dragAndDrow/DragAndDrop.as b/otherPlatforms/dragAndDrow/DragAndDrop.as index f8f12c1e..a0dfddc5 100644 --- a/otherPlatforms/dragAndDrow/DragAndDrop.as +++ b/otherPlatforms/dragAndDrow/DragAndDrop.as @@ -75,7 +75,7 @@ } for(var j:int = 0 ; j0) { versionPart[0] = String(versionPart[0]).split('').join('').split('').join(''); - trace("version loaded : "+versionPart[0]+' > '+(DevicePrefrence.appVersion==versionPart[0])); - trace("DevicePrefrence.appVersion : "+DevicePrefrence.appVersion); + SaffronLogger.log("version loaded : "+versionPart[0]+' > '+(DevicePrefrence.appVersion==versionPart[0])); + SaffronLogger.log("DevicePrefrence.appVersion : "+DevicePrefrence.appVersion); if(!(DevicePrefrence.appVersion==versionPart[0])) { - trace("Update Needed!"); + SaffronLogger.log("Update Needed!"); needToUpdateFunction(); } } }); - urlLoader.addEventListener(IOErrorEvent.IO_ERROR,function(e){trace("Online manifest load faild")}); + urlLoader.addEventListener(IOErrorEvent.IO_ERROR,function(e){SaffronLogger.log("Online manifest load faild")}); } /**set the installer file from the web to the parameter and wait, it will launch your application installer automaticaly after the download completed.
diff --git a/otherPlatforms/postMan/PostManToASFiles.as b/otherPlatforms/postMan/PostManToASFiles.as index 6a70a029..32cbcdc0 100644 --- a/otherPlatforms/postMan/PostManToASFiles.as +++ b/otherPlatforms/postMan/PostManToASFiles.as @@ -34,7 +34,7 @@ var serviceData:PostManExportModel = new PostManExportModel(); JSONParser.parse(service,serviceData); - trace("serviceData : "+serviceData.item.length); + SaffronLogger.log("serviceData : "+serviceData.item.length); serviceGenerator = new ServiceGenerator(); /*for(var i:uint = 0 ; i>test : "+rootItems[i].request.url); + SaffronLogger.log(">>test : "+rootItems[i].request.url); createRequestFiles(rootItems[i],mySaveToFolderForServices); } searchForAllItems(rootItems[i].item,mySaveToFolderForServices.resolvePath(rootItems[i].name)); @@ -72,19 +72,19 @@ if(itemModel.response.length>0 && itemModel.response[0].body!=null) { - trace("***** : "+itemModel.response[itemModel.response.length-1].body); - trace("******** : "+JSONCorrector(itemModel.response[itemModel.response.length-1].body)); + SaffronLogger.log("***** : "+itemModel.response[itemModel.response.length-1].body); + SaffronLogger.log("******** : "+JSONCorrector(itemModel.response[itemModel.response.length-1].body)); serviceGenerator.outPutObject = JSON.parse(JSONCorrector(itemModel.response[itemModel.response.length-1].body)) ; serviceGenerator.outPutObjectClassName = createClassName(serviceGenerator.ServiceName,'Respond'); - trace("serviceGenerator.outPutObject : "+serviceGenerator.outPutObject); + SaffronLogger.log("serviceGenerator.outPutObject : "+serviceGenerator.outPutObject); if(serviceGenerator.outPutObject is Array || serviceGenerator.outPutObject is Vector.<*>) { - trace("It was vector"); + SaffronLogger.log("It was vector"); SaveJSONtoAs(serviceGenerator.outPutObject[0],mySaveToFolderForTypes,serviceGenerator.outPutObjectClassName); } else { - trace("It was Object"); + SaffronLogger.log("It was Object"); SaveJSONtoAs(serviceGenerator.outPutObject,mySaveToFolderForTypes,serviceGenerator.outPutObjectClassName); } } @@ -179,16 +179,16 @@ { if(body.raw!='' && body.raw!=null) { - //trace("JSON is : "+body.raw); + //SaffronLogger.log("JSON is : "+body.raw); var convertedJSON:String = JSONCorrector(body.raw) ; - //trace("convertedJSON JSON is : "+convertedJSON); + //SaffronLogger.log("convertedJSON JSON is : "+convertedJSON); try { bodyObject = JSON.parse(convertedJSON) ; } catch(e) { - trace("JSON input model was wrnog : "+JSONCorrector(body.raw)); + SaffronLogger.log("JSON input model was wrnog : "+JSONCorrector(body.raw)); }; } } @@ -198,7 +198,7 @@ /**This will replace dfafd:"dfds" with "dfafd":"dfds"*/ private static function JSONCorrector(wrongJSON:String):String { - trace("Current entered json is : "+wrongJSON); + SaffronLogger.log("Current entered json is : "+wrongJSON); if(wrongJSON=="True") { return "true" ; @@ -215,8 +215,8 @@ * Waring!! each class has to have a variable with a special name*/ public static function SaveJSONtoAs(jsonObject:Object,directory:File,rootClassName:String):File { - trace("Target file directory is : "+directory.nativePath); - trace("Create class : "+rootClassName); + SaffronLogger.log("Target file directory is : "+directory.nativePath); + SaffronLogger.log("Create class : "+rootClassName); var myAsClass:String = classFileModel ; myAsClass = myAsClass.split("[ClassName]").join(rootClassName) ; @@ -228,13 +228,13 @@ sortedParams.push(names); } sortedParams.sort(); - trace("sortedParams : "+sortedParams); + SaffronLogger.log("sortedParams : "+sortedParams); for(var i:int=0 ; i >>>>"+paramName); + SaffronLogger.log(">>>>>"+paramName); if(jsonObject[paramName] is String) { parameters+='String ;' @@ -249,7 +249,7 @@ } else if(jsonObject[paramName] is Array) { - trace(">>>"+paramName); + SaffronLogger.log(">>>"+paramName); if(jsonObject[paramName].length>0 && !(jsonObject[paramName][0] is Number) && !(jsonObject[paramName][0] is String) && diff --git a/otherPlatforms/postMan/ServiceGenerator.as b/otherPlatforms/postMan/ServiceGenerator.as index ff5762ea..1eb17049 100644 --- a/otherPlatforms/postMan/ServiceGenerator.as +++ b/otherPlatforms/postMan/ServiceGenerator.as @@ -36,11 +36,11 @@ if(inputObject==null) { var par:String = myWebServiceLocation.substring(myWebServiceLocation.lastIndexOf('?')+1); - trace("par: "+par); + SaffronLogger.log("par: "+par); for(var ii:int = 0 ; ii<100 ; ii++){ par = par.replace(/\&([\w]+)([&]|$)/i,'&$1=$2'); } - trace("par : "+par); + SaffronLogger.log("par : "+par); inputObject = new URLVariables(par); //Split extra variables from the web service url at all myWebServiceLocation = myWebServiceLocation.substring(0,myWebServiceLocation.lastIndexOf('?')); @@ -62,8 +62,8 @@ var parameters:Array = [] ; for(var i:String in inputObject) { - trace('i+":"+getQualifiedClassName(inputObject[i]) : '+i+":"+getQualifiedClassName(inputObject[i])); - trace("Is is array? "+(inputObject[i] is Array)); + SaffronLogger.log('i+":"+getQualifiedClassName(inputObject[i]) : '+i+":"+getQualifiedClassName(inputObject[i])); + SaffronLogger.log("Is is array? "+(inputObject[i] is Array)); if(inputObject[i] is Array && inputObject[i].length>0 && @@ -81,7 +81,7 @@ } } parameters.sort(); - trace("params : "+parameters); + SaffronLogger.log("params : "+parameters); inputParamsFor = '{'; for(var j:uint ; j")!=-1 && DevicePrefrence.appDescriptor.toString().indexOf('android:hardwareAccelerated="true')==-1) { - trace( 'You have to add below permition to Android manifest to make StageVideo works:\n\n\nor\n\n') + SaffronLogger.log( 'You have to add below permition to Android manifest to make StageVideo works:\n\n\nor\n\n') } } } diff --git a/photoEditor/EditorCropper.as b/photoEditor/EditorCropper.as index a9383073..4719206e 100644 --- a/photoEditor/EditorCropper.as +++ b/photoEditor/EditorCropper.as @@ -191,8 +191,8 @@ package photoEditor mousePoseY = 1; } - //trace("mousePoseY : "+mousePoseY); - //trace("mousePoseX : "+mousePoseX); + //SaffronLogger.log("mousePoseY : "+mousePoseY); + //SaffronLogger.log("mousePoseX : "+mousePoseX); //Set the last mouse pose mousePose = new Point(this.mouseX,this.mouseY); @@ -238,7 +238,7 @@ package photoEditor override internal function saveAndClose():void { PhotoEdit.updateImage(PhotoEdit.getImage(rs)); - trace("Save the cropped image"); + SaffronLogger.log("Save the cropped image"); super.saveAndClose(); } } diff --git a/photoEditor/EditorPencil.as b/photoEditor/EditorPencil.as index c3f0dd5d..b70aa312 100644 --- a/photoEditor/EditorPencil.as +++ b/photoEditor/EditorPencil.as @@ -55,11 +55,11 @@ package photoEditor - trace("toolbarRect : "+toolbarRect); + SaffronLogger.log("toolbarRect : "+toolbarRect); secondToolbarRect = new Rectangle(0,fullScreenAreaRect.height-this.height,fullImageAreaRect.width,toolbarContainer2.height); - trace("secondToolbarRect : "+secondToolbarRect); + SaffronLogger.log("secondToolbarRect : "+secondToolbarRect); fullImageAreaRect.height-=secondToolbarRect.height ; //Debug lines @@ -77,10 +77,10 @@ package photoEditor if(imageRect.height>fullImageAreaRect.height) { - trace("imageRect.x was : "+imageRect.x); + SaffronLogger.log("imageRect.x was : "+imageRect.x); imageRect.x=(fullImageAreaRect.width-((fullImageAreaRect.height/imageRect.height)*imageRect.width))/2; imageRect.height = fullImageAreaRect.height ; - trace("imageRect.x is : "+imageRect.x); + SaffronLogger.log("imageRect.x is : "+imageRect.x); PhotoEdit.removePhotoPrevew(); } @@ -90,7 +90,7 @@ package photoEditor //paperRect.width = 200 ; //paperRect.height = 10 ; - trace("paperRect is "+paperRect); + SaffronLogger.log("paperRect is "+paperRect); myPaper = new Paper(0x00000000,imageFullBitmapData,null,paperRect); myPaper.x = imageRect.x ; @@ -194,7 +194,7 @@ package photoEditor var tool:MovieClip = event.currentTarget as MovieClip ; var toolSize:Number = uint(tool.name.split(toolsSizeName).join('')); - for(var i = 0 ; i = imageHistory.splice(imageIndex+1,imageHistory.length-imageIndex); - for(var i = 0 ; i0) { @@ -84,7 +86,8 @@ Alert.show(String(evt.field[credit]));
}
*/ - public static function getText(title:String,question:String,tagLable:String,onDone:Function,OnNotAccepted:Function=null,keyboardType:String=SoftKeyboardType.DEFAULT,isPassword:Boolean=false,innerDisplayObject:DisplayObject=null,ButtonFrameYes:int=1,ButtonFrameNo:int=1,defaultTextOnField:String=''):void + public static function getText(title:String,question:String,tagLable:String,onDone:Function,OnNotAccepted:Function=null,keyboardType:String=SoftKeyboardType.DEFAULT,isPassword:Boolean=false, + innerDisplayObject:DisplayObject=null,ButtonFrameYes:int=1,ButtonFrameNo:int=1,defaultTextOnField:String='',numLine:uint=1):void { controllConfig(); onQuestionAccepted = onDone; @@ -93,7 +96,7 @@ var buttons:Array = [new PopButtonData(Contents.lang.t[id_submit],ButtonFrameYes,null,true,true) ,new PopButtonData(Contents.lang.t[id_back],ButtonFrameNo,null,true,true)] ; var popFields:PopMenuFields = new PopMenuFields(); - popFields.addField(tagLable,defaultTextOnField,keyboardType,isPassword,true,true); + popFields.addField(tagLable,defaultTextOnField,keyboardType,isPassword,true,true,numLine,0,1,0,numLine>1); var popText:PopMenuContent = new PopMenuContent(question,popFields,buttons,innerDisplayObject); PopMenu1.popUp(title,null,popText,0,textCatched); } @@ -126,7 +129,7 @@ } } - private static function onQuestionAnswered(e:PopMenuEvent) + private static function onQuestionAnswered(e:PopMenuEvent):void { if(e.buttonTitle == Contents.lang.t[id_yes]) { @@ -174,19 +177,21 @@ { if(_onClose!=null) { - _onClose.call(); + var cahsedhCloseFunc:Function = _onClose ; + _onClose = null ; + cahsedhCloseFunc(); } } /**Show no internet connection available*/ - public static function noInternet(fakeInput:*=null,onClosed:Function=null) + public static function noInternet(fakeInput:*=null,onClosed:Function=null):void { controllConfig(); show(Contents.lang.t[id_no_internet],true,-1,null,'',onClosed); } /**hide hint*/ - public static function hide() + public static function hide():void { PopMenu1.close(); //throw "Hide calls"; @@ -195,7 +200,7 @@ /**Show the please wait page , you have to close this page manualy
* The onCloded function had to get popDataEvent*/ - public static function pleaseWait( onClosed:Function = null ) + public static function pleaseWait( onClosed:Function = null ):void { controllConfig(); var buttons:Array ; @@ -240,7 +245,11 @@ * onButtonSelected : function(e:PopMenuEvent);
* onSearchButton : function(searchParam:String);
* the function "onJobSelected" must have a variable based on PopMenuEvent */ - public static function selector(title:String,text:String,buttonsList:Array,onButtonSelected:Function,onSearchButton:Function=null,defButtonFrame:uint=1,itemFrame:uint=2,onBackFUnction:Function = null,backButtonFrame:int=1,addBackButton:Boolean=true):void + public static function selector(title:String,text:String,buttonsList:Array, + onButtonSelected:Function,onSearchButton:Function=null,defButtonFrame:uint=1, + itemFrame:uint=2,onBackFUnction:Function = null,backButtonFrame:int=1, + addBackButton:Boolean=true,defaultSearchTextToShow:String='',filterButtonFrame:uint=1, + displayObject:DisplayObject=null):void { controllConfig(); var moreHint:String = '' ; @@ -255,13 +264,14 @@ if( onSearched != null ) { + var searchButton:PopButtonData = new PopButtonData(Contents.lang.t[id_search],filterButtonFrame,null,true,true); if(addBackButton) { - namesArray = [new PopButtonData(Contents.lang.t[id_search],1,null,true,true),backButton,''] ; + namesArray = [searchButton,backButton,''] ; } else { - namesArray = [Contents.lang.t[id_search],''] ; + namesArray = [searchButton,''] ; } } else @@ -276,7 +286,7 @@ } } namesArray = namesArray.concat(buttonsList); - trace("namesArray : "+namesArray.length); + SaffronLogger.log("namesArray : "+namesArray.length); if((addBackButton && namesArray.length < 3) || (!addBackButton && namesArray.length == 0 )) { @@ -285,9 +295,9 @@ if(onSearched != null) { - popField.addField(Contents.lang.t[id_search],''); + popField.addField(Contents.lang.t[id_search],defaultSearchTextToShow); } - var popText:PopMenuContent = new PopMenuContent(moreHint+text,popField,namesArray,null,[defButtonFrame,defButtonFrame,itemFrame]); + var popText:PopMenuContent = new PopMenuContent(moreHint+text,popField,namesArray,displayObject,[defButtonFrame,defButtonFrame,itemFrame]); PopMenu1.popUp(title,null,popText,0,someThingSelected); } @@ -295,7 +305,7 @@ { if(e.buttonTitle == Contents.lang.t[id_back]) { - trace("let this menu close"); + SaffronLogger.log("let this menu close"); if(onBacked!=null) { if(onBacked.length==0) diff --git a/popForm/PopButton.as b/popForm/PopButton.as index 76781a44..2cbddcd0 100644 --- a/popForm/PopButton.as +++ b/popForm/PopButton.as @@ -8,11 +8,14 @@ import flash.events.Event; import flash.events.KeyboardEvent; import flash.events.MouseEvent; - import flash.geom.ColorTransform; import flash.geom.Point; import flash.text.TextField; - import flash.text.TextFormat; import flash.ui.Keyboard; + import contents.LinkData; + import appManager.event.AppEventContent; + import stageManager.StageManager; + import flash.utils.Dictionary; + import flash.display.DisplayObject; public class PopButton extends MovieClip @@ -21,6 +24,9 @@ /**List of titles that will listening to the back event from key board to act*/ private static var backList:Array = [] ; + + /**Uses on onClickOpenLink() function */ + private var _link_to_open:LinkData ; private var txtTF:TextField ; @@ -93,18 +99,95 @@ if(str=='' && buttonID==0 && type==1 && completeButtonObject==null) { - trace("It should be the default values for the button"); + SaffronLogger.log("It should be the default values for the button"); } else { setUp(str,buttonID,type,completeButtonObject); } } + + public function select():void + { + this.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); + } + public function moveUpByKeyboard(MaxMove:Number=0):void + { + allPositions = new Dictionary(); + maxMoveUp = MaxMove ; + this.addEventListener(Event.ENTER_FRAME,checkKeyboard); + this.addEventListener(Event.REMOVED_FROM_STAGE,unLoad2); + } + + private const extraHeight:Number = 100 ; + /**Will be create dynamicly */ + private var keyBoardHeight:Number = 0 ; + + private var allPositions:Dictionary ; + + private var maxMoveUp:Number ; + + private function checkKeyboard(e:Event):void + { + if(this.parent!=null && this.stage.softKeyboardRect.height>0)//stage.mouseX>100 + { + trace("stage.fullScreenWidth : "+stage.fullScreenWidth); + trace("stage.stageWidth : "+stage.stageWidth); + if(keyBoardHeight==0)// + { + var stageScale:Number = stage.fullScreenWidth/stage.stageWidth ; + trace("stageScale : "+stageScale); + trace("this.stage.softKeyboardRect : "+this.stage.softKeyboardRect) + keyBoardHeight = (Math.sqrt(Math.pow(this.stage.softKeyboardRect.width,2)/2))/stageScale+extraHeight;//stage.mouseX-100; + } + var stageFullscreenH:Number = StageManager.stageVisibleArea.height; + trace("stageFullscreenH : "+stageFullscreenH); + var textFieldBottomBasedOnRoot:Number = this.parent.localToGlobal(new Point(0,this.y+this.height/2)).y ; + trace("textFieldBottomBasedOnRoot : "+textFieldBottomBasedOnRoot); + var textFeildFromBottom:Number = stageFullscreenH-(textFieldBottomBasedOnRoot+StageManager.stageDelta.height/2); + var moveUpTo:Number = Math.max(0,keyBoardHeight-textFeildFromBottom) ; + if(maxMoveUp>0) + { + moveUpTo = Math.min(maxMoveUp,moveUpTo); + } + trace("keyBoardHeight : "+keyBoardHeight); + trace("textFeildFromBottom : "+textFeildFromBottom); + trace("Move it up to : "+moveUpTo); + for(var i:int = 0 ; i * You can set the button image if it has LighiImage on its frame*/ @@ -177,7 +283,7 @@ if(buttonImage!=null) { - trace("♠ the button image is not null : "+buttonImage); + SaffronLogger.log("♠ the button image is not null : "+buttonImage); myLightImage = Obj.findAllClass(LightImage,this)[0]; controllStage = true ; } @@ -194,10 +300,10 @@ backMC = Obj.get('back_mc',this); ID = buttonID ; - //trace("Button title is : "+title); + //SaffronLogger.log("Button title is : "+title); title = str ; - //trace('SAVE AND EXIT BUTTON : '+str); + //SaffronLogger.log('SAVE AND EXIT BUTTON : '+str); if(txtTF) { @@ -243,7 +349,7 @@ /**Contrll the button position*/ protected function controllPosition(event:Event=null):void { - if(this.localToGlobal(new Point()).y<1400) + if(this.localToGlobal(new Point()).y<1800) { createElements(); } @@ -257,7 +363,7 @@ /**Controll the button y after enter frame*/ protected function controllPosition2(event:Event):void { - if(this.localToGlobal(new Point()).y<1400) + if(this.localToGlobal(new Point()).y<1800) { this.removeEventListener(Event.ENTER_FRAME,controllPosition2); createElements(); @@ -267,7 +373,7 @@ /**Create the interface now*/ private function createElements():void { - //trace("Create the elemets"); + //SaffronLogger.log("Create the elemets"); if(myLightImage!=null) { myLightImage.setUp(buttonImageURL,true); diff --git a/popForm/PopField.as b/popForm/PopField.as index 949b3453..c9523081 100644 --- a/popForm/PopField.as +++ b/popForm/PopField.as @@ -14,6 +14,7 @@ import flash.utils.setTimeout; import contents.alert.Alert; import animation.Anim_Frame_Controller; + import flash.utils.clearTimeout; /**Text field is changed*/ [Event(name="change", type="flash.events.Event")] @@ -33,6 +34,7 @@ private var activeRadioMode:Boolean ; private var backMC:MovieClip ; + private var submitMC:MovieClip ; private var myTitle:String; /**If this was true, data function will controll the phone correction befor returning the value*/ @@ -63,12 +65,24 @@ private var _multiLineTag:Boolean=false; public static var borderColor:uint = 0xD92C5C; + + private var onSubmited:Function ; + private var onEditedFunc:Function ; + private var onEditeFuncCalDelay:uint ; + + private var requiredMC:MovieClip ; public function get textField():TextField { return myTXT ; } + + public function get backgorund():MovieClip + { + return backMC ; + } + /**this will returns last inputed text to client*/ @@ -153,7 +167,7 @@ var cash:String = PhoneNumberEditor.clearPhoneNumber(text); if(cash == 'false') { - trace("This phone number is incorrect"); + SaffronLogger.log("This phone number is incorrect"); return text ; } else @@ -164,7 +178,7 @@ return text ; } - public function changeColor(colorFrame:uint) + public function changeColor(colorFrame:uint):void { backMC.gotoAndStop(colorFrame); } @@ -173,6 +187,20 @@ { super(); stop(); + requiredMC = Obj.get("required_mc",this); + if(requiredMC)requiredMC.visible = false ; + } + + public function required():PopField + { + if(requiredMC)requiredMC.visible = true ; + return this ; + } + + public function isCurrentcy():PopField + { + if(nativeKeyBoard)nativeKeyBoard.isCurrency() + return this ; } /**Changing the form color without making effect on other values*/ @@ -199,17 +227,26 @@ public function onEnterPressed(func:Function):void { + onSubmited = func ; if(nativeKeyBoard!=null) { nativeKeyBoard.onEnterPressed(func); } } + + public function onEdited(func:Function):PopField + { + onEditedFunc = func ; + return this ; + } - public function setUp(tagName:String,defaultText:String,KeyBordType:String = SoftKeyboardType.DEFAULT,isPass:Boolean = false,editable:Boolean = true,isAraic:Boolean=true,numLines:uint = 1,color:uint=1,frame:uint=1,maxChar:uint=0,otherOptions:Array=null,deleteDefautlText:Boolean=false,activateRadioSwitcher:Boolean=false,returnKey:String=ReturnKeyLabel.DEFAULT,onTypedFunction:Function=null,justShowNativeText:Boolean=false,multiLineTag:Boolean=false,justify:Boolean=true):PopField + public function setUp(tagName:String,defaultText:String,KeyBordType:String = SoftKeyboardType.DEFAULT,isPass:Boolean = false,editable:Boolean = true,isAraic:Boolean=true,numLines:uint = 1,color:uint=1,frame:uint=1,maxChar:uint=0,otherOptions:Array=null,deleteDefautlText:Boolean=false,activateRadioSwitcher:Boolean=false,returnKey:String=ReturnKeyLabel.DEFAULT,onTypedFunction:Function=null,justShowNativeText:Boolean=false,multiLineTag:Boolean=false,justify:Boolean=true,selectAllCharchter:Boolean=false):PopField { var Y0:Number ; var Y1:Number ; + + onSubmited = onTypedFunction ; if(defaultText!=null) lastTXT = defaultText ; @@ -221,7 +258,7 @@ if(editable && numLines==0) { - trace("You cant have dynamic field size on editable texts"); + SaffronLogger.log("You cant have dynamic field size on editable texts"); numLines = 1 ; } fieldNumLines = numLines ; @@ -234,13 +271,22 @@ myTitle = tagName ; backMC = Obj.getAllChilds("back_mc",this,true)[0]; + if(backMC==null) + { + backMC = new MovieClip(); + } + submitMC = Obj.get("submit_mc",this); + //New Line to manage textfield background color changeColor(color); tagContainer = Obj.getAllChilds("tag_txt",this,true)[0]; - tagNameTXT = Obj.getAllChilds("tag_txt",tagContainer,true)[0]; - tagNameTXT.text = "" ; + if(tagContainer) + { + tagNameTXT = Obj.getAllChilds("tag_txt",tagContainer,true)[0]; + tagNameTXT.text = "" ; + } showPassMC = Obj.get("show_pass_mc",this); if(showPassMC) @@ -268,12 +314,15 @@ clearMC.visible = false ; } _multiLineTag = multiLineTag; - if(multiLineTag){ - TextPutter.onTextArea(tagNameTXT,tagName,StringFunctions.isPersian(tagName),true,true,0,false,false,-1,false,0,false); - } - else + if(tagNameTXT!=null) { - TextPutter.OnButton(tagNameTXT,tagName,StringFunctions.isPersian(tagName),false,true); + if(multiLineTag){ + TextPutter.onTextArea(tagNameTXT,tagName,StringFunctions.isPersian(tagName),true,true,0,false,false,-1,false,0,false); + } + else + { + TextPutter.OnButton(tagNameTXT,tagName,StringFunctions.isPersian(tagName),false,true); + } } myTXT = Obj.getAllChilds('txt_txt',this,false)[0]; myTXT.addEventListener(Event.CLOSE, dispatchChangeForMeToo); @@ -283,19 +332,26 @@ myTXT.borderColor = borderColor; myTXT.displayAsPassword = isPass ; myTXT.mouseEnabled = myTXT.selectable = editable ; + + if(submitMC!=null) + { + submitMC.buttonMode = true ; + submitMC.addEventListener(MouseEvent.CLICK,activateSubmitIfSomethingEntered); + } - if(tagContainer.totalFrames>1) + if(tagContainer!=null && tagContainer.totalFrames>1 && tagFrameControl==null) { tagFrameControl = new Anim_Frame_Controller(tagContainer,defaultText==''?0:uint.MAX_VALUE,false); - Obj.addEventListner(myTXT,FarsiInputCorrectionEvent.TEXT_FIELD_SELECTED,function():void - { - tagFrameControl.gotoFrame(uint.MAX_VALUE); - }); - Obj.addEventListner(myTXT,FarsiInputCorrectionEvent.TEXT_FIELD_CLOSED,function():void + Obj.addEventListener(myTXT,FarsiInputCorrectionEvent.TEXT_FIELD_SELECTED,checkTagAnimation); + Obj.addEventListener(myTXT,FarsiInputCorrectionEvent.TEXT_FIELD_CLOSED,checkTagAnimation); + Obj.addEventListener(myTXT,Event.CHANGE,checkTagAnimation); + function checkTagAnimation(e:Event):void { - if(myTXT.text=='') + if(e.type!=FarsiInputCorrectionEvent.TEXT_FIELD_SELECTED && myTXT.text=='') tagFrameControl.gotoFrame(0); - }); + else + tagFrameControl.gotoFrame(uint.MAX_VALUE); + } } @@ -304,7 +360,7 @@ Y0 = myTXT.height; myTXT.multiline = true ; myTXT.wordWrap = true ; - for(var i = 0 ; i0 ; this.dispatchEvent(new Event(Event.RENDER)); + + callOnEditedFunc(); } + + private function callOnEditedFunc():void + { + clearTimeout(onEditeFuncCalDelay); + if(onEditedFunc!=null) + { + onEditeFuncCalDelay = setTimeout(callOnEditedNow,100); + } + } + private function callOnEditedNow():void + { + if(onEditedFunc!=null)onEditedFunc(); + } protected function increaseValue(event:MouseEvent):void { @@ -459,10 +542,14 @@ override public function get height():Number { - var tagHeight:Number = Math.max(super.height,tagNameTXT.height+tagNameTXT.y); + var tagHeight:Number = super.height; + if(tagNameTXT!=null) + { + tagHeight = Math.max(tagHeight,tagNameTXT.height+tagNameTXT.y); + } if(myTXT==null) { - return Math.max(tagNameTXT.height,tagHeight) ; + return tagHeight ; } return Math.max(myTXT.y+myTXT.height,backMC.y+backMC.height,tagHeight); } @@ -529,7 +616,7 @@ } /**Returns true if radio butto changed*/ - public function switchRadioButton(e=null):Boolean + public function switchRadioButton(e:*=null):Boolean { if(!super.enabled) { @@ -537,16 +624,16 @@ } if(radioButtonArray == null || radioButtonArray.length ==0) { - trace("No radio button values receved"); + SaffronLogger.log("No radio button values receved"); return false ; } else { var I:int = radioButtonArray.indexOf(myTXT.text); - //trace("radioButtonArray : "+radioButtonArray.indexOf(myTXT)); + //SaffronLogger.log("radioButtonArray : "+radioButtonArray.indexOf(myTXT)); if(I==-1) { - trace("Cannot find current value between enterd radio buttons : "+myTXT.text+' vs '+radioButtonArray); + SaffronLogger.log("Cannot find current value between enterd radio buttons : "+myTXT.text+' vs '+radioButtonArray); myTXT.text = radioButtonArray[0]; myTXT.dispatchEvent(new Event(Event.CHANGE)); this.dispatchEvent(new Event(Event.CHANGE)); diff --git a/popForm/PopFieldBoolean.as b/popForm/PopFieldBoolean.as index 9556e6ba..82e0e7a7 100644 --- a/popForm/PopFieldBoolean.as +++ b/popForm/PopFieldBoolean.as @@ -5,6 +5,7 @@ package popForm import flash.events.Event; import flash.events.MouseEvent; import flash.text.TextField; + import animation.Anim_Frame_Controller; /**Boolean field changed*/ [Event(name="change", type="flash.events.Event")] @@ -14,6 +15,9 @@ package popForm private var checkMC:MovieClip ; private var backMC:MovieClip; + + private var checkAnimation:Anim_Frame_Controller ; + private var lastCheckStatus:Boolean ; private var IsArabic:Boolean, myTitle:String; @@ -30,11 +34,24 @@ package popForm } } - private function switchBoolean(e):void + private function switchBoolean(e:*):void { - checkMC.visible = !checkMC.visible ; + lastCheckStatus = !lastCheckStatus ; + checkIt(lastCheckStatus); this.dispatchEvent(new Event(Event.CHANGE)); } + + private function checkIt(status:Boolean):void + { + if(checkAnimation!=null) + { + checkAnimation.gotoFrame(status==true?checkMC.totalFrames:1); + } + else + { + checkMC.visible = status ; + } + } public function setUp(tagName:String,defaultState:Boolean=false,isArabic:Boolean=true,languageFrame:uint=1,color:uint=1):void { @@ -51,20 +68,25 @@ package popForm var tagContainer:MovieClip = Obj.getAllChilds("tag_txt",this,true)[0]; tagTF = Obj.getAllChilds("tag_txt",tagContainer,true)[0]; checkMC = Obj.get("check_mc",this); + if(checkMC.totalFrames>1) + { + checkAnimation = new Anim_Frame_Controller(checkMC,1,false); + } TextPutter.OnButton(tagTF,tagName,isArabic,true,false); update(defaultState); } - public function changeColor(colorFrame:uint) + public function changeColor(colorFrame:uint):void { backMC.gotoAndStop(colorFrame); } override public function update(data:*):void { - checkMC.visible = data ; + lastCheckStatus = data ; + checkIt(data); } override public function get title():String @@ -74,13 +96,15 @@ package popForm override public function get data():* { - //trace("Get my date : "+date); - return checkMC.visible ; + //SaffronLogger.log("Get my date : "+date); + + return lastCheckStatus ; } public function set data(value:Boolean):void { - checkMC.visible = value ; + lastCheckStatus = value ; + checkIt(lastCheckStatus); } } } \ No newline at end of file diff --git a/popForm/PopFieldDate.as b/popForm/PopFieldDate.as index 49c02696..f74b55ae 100644 --- a/popForm/PopFieldDate.as +++ b/popForm/PopFieldDate.as @@ -37,7 +37,7 @@ dw_yearMC:MovieClip, dw_monthMC:MovieClip; - public function changeColor(colorFrame:uint) + public function changeColor(colorFrame:uint):void { backMC.gotoAndStop(colorFrame); } @@ -237,9 +237,9 @@ else { clearAfterSelects = true ; - yearTF.text = 'yyyy'; - monthTF.text = 'mm'; - dayTF.text = 'dd'; + yearTF.text = IsArabic?'سال':'yyyy'; + monthTF.text = IsArabic?'ماه':'mm'; + dayTF.text = IsArabic?'روز':'dd'; } yearKeyboard = FarsiInputCorrection.setUp(yearTF,SoftKeyboardType.NUMBER,IsArabic,true,clearAfterSelects,false,true,true,ReturnKeyLabel.NEXT,selectMonth); @@ -290,13 +290,18 @@ override public function get data():* { - //trace("Get my date : "+date); + //SaffronLogger.log("Get my date : "+date); return date ; } + + public function set date(value:Date):void + { + update(value); + } public function get date():Date { - //trace("yearTF.text == "+yearTF.text+" monthTF.text == "+monthTF.text+" dayTF.text == "+dayTF.text); + //SaffronLogger.log("yearTF.text == "+yearTF.text+" monthTF.text == "+monthTF.text+" dayTF.text == "+dayTF.text); if(yearTF.text == '' || monthTF.text == '' || dayTF.text == '') { return null ; @@ -334,12 +339,12 @@ var finalDate:Date ; - //trace("yearNum : "+yearNum); + //SaffronLogger.log("yearNum : "+yearNum); if(yearNum<1500) { var shamsiDate:DateShamsi = new DateShamsi(yearNum,(monthNum-1),dayNum); finalDate = DateShamsi.shamsiToMiladi(shamsiDate); - //trace("This was shamsi : "+finalDate); + //SaffronLogger.log("This was shamsi : "+finalDate); } else { diff --git a/popForm/PopFieldSimple.as b/popForm/PopFieldSimple.as index 48048925..62bf471e 100644 --- a/popForm/PopFieldSimple.as +++ b/popForm/PopFieldSimple.as @@ -142,7 +142,7 @@ package popForm var cash:String = PhoneNumberEditor.clearPhoneNumber(text); if(cash == 'false') { - trace("This phone number is incorrect"); + SaffronLogger.log("This phone number is incorrect"); return text ; } else @@ -178,7 +178,7 @@ package popForm if(editable && numLines==0) { - trace("You cant have dynamic field size on editable texts"); + SaffronLogger.log("You cant have dynamic field size on editable texts"); numLines = 1 ; } fieldNumLines = numLines ; @@ -341,7 +341,7 @@ package popForm protected function clearText(event:MouseEvent):void { event.stopImmediatePropagation(); - trace("Clear****************"); + SaffronLogger.log("Clear****************"); myTXT.text = ''; myTXT.dispatchEvent(new Event(Event.CHANGE)); } @@ -440,16 +440,16 @@ package popForm } if(radioButtonArray == null || radioButtonArray.length ==0) { - trace("No radio button values receved"); + SaffronLogger.log("No radio button values receved"); return false ; } else { var I:int = radioButtonArray.indexOf(myTXT.text); - //trace("radioButtonArray : "+radioButtonArray.indexOf(myTXT)); + //SaffronLogger.log("radioButtonArray : "+radioButtonArray.indexOf(myTXT)); if(I==-1) { - trace("Cannot find current value between enterd radio buttons : "+myTXT.text+' vs '+radioButtonArray); + SaffronLogger.log("Cannot find current value between enterd radio buttons : "+myTXT.text+' vs '+radioButtonArray); myTXT.text = radioButtonArray[0]; myTXT.dispatchEvent(new Event(Event.CHANGE)); this.dispatchEvent(new Event(Event.CHANGE)); diff --git a/popForm/PopFieldTime.as b/popForm/PopFieldTime.as index 50d32dc6..48d9743c 100644 --- a/popForm/PopFieldTime.as +++ b/popForm/PopFieldTime.as @@ -15,7 +15,7 @@ package popForm - public function changeColor(colorFrame:uint) + public function changeColor(colorFrame:uint):void { backMC.gotoAndStop(colorFrame); } diff --git a/popForm/PopMenu.as b/popForm/PopMenu.as index cad932b3..5bcfe3c2 100644 --- a/popForm/PopMenu.as +++ b/popForm/PopMenu.as @@ -28,10 +28,14 @@ import flash.geom.Matrix; import flash.utils.setTimeout; import contents.Contents; + import flash.display.DisplayObject; + import contents.alert.Alert; public class PopMenu extends MovieClip { private static const CANCEL_ELEMENT_NAME:String = "cancel_mc" ; + + private static var onPopUpOpenned:Function ; /**main object of class*/ private static var ME:PopMenu; @@ -95,16 +99,21 @@ private var cancelButton:MovieClip; /**Enter a String or an Array of Strings*/ - public static function backEnable(backString:*) + public static function backEnable(backString:*):void { backButtonName = backString ; } + + public static function onOpen(func:Function):void + { + onPopUpOpenned = func ; + } /**Activate the static cansel button*/ public static function staticCanselEnabled(CancelNames:Array):void { cancelNames = CancelNames.concat() ; - for(var i = 0 ; i 0) { mainBackMC = backGroundchilds[0] ; @@ -206,7 +215,7 @@ } else { - trace('main_back_mc is not definds'); + SaffronLogger.log('main_back_mc is not definds'); } NativeApplication.nativeApplication.addEventListener(KeyboardEvent.KEY_DOWN,checkBack); @@ -227,6 +236,8 @@ private static function setStaticBacksFromSaffron():void { + if(backButtonName!=null || cancelNames!=null) + return; if(Contents.lang!=null && Contents.lang.t !=null && Contents.lang.t.back!=null) { PopMenu.backEnable(Contents.lang.t.back); @@ -249,7 +260,7 @@ private function checkBack(ev:KeyboardEvent):void { - if(ev.keyCode == Keyboard.BACK || ev.keyCode == Keyboard.BACKSPACE || ev.keyCode == Keyboard.PAGE_UP ) + if(ev.keyCode == Keyboard.BACK || ev.keyCode == Keyboard.PAGE_UP ) { if(show) { @@ -257,23 +268,23 @@ ev.stopImmediatePropagation(); } var controll:Boolean = backClicked(null); - //trace("FocusDirection : "+FocusDirection); - //trace("(stage as Stage).focus : "+(stage as Stage).focus); + //SaffronLogger.log("FocusDirection : "+FocusDirection); + //SaffronLogger.log("(stage as Stage).focus : "+(stage as Stage).focus); } } protected function backClicked(event:MouseEvent):Boolean { - //trace("show : "+show); + //SaffronLogger.log("show : "+show); if(show) { - trace("Back ground clicked"); + SaffronLogger.log("Back ground clicked"); if(backButtonName==null) { - trace( "back button dose not work" ) ; + SaffronLogger.log( "back button dose not work" ) ; } - for(var i = 0 ; i '+backMC.height); + //SaffronLogger.log("myContent.height : "+myContent.height + ' vs backMaxH : '+backMaxH+' vs backMinH : '+backMinH+' > '+backMC.height); if(cancelButton) { cancelEvent = null ; cancelButton.visible = false ; - for(var i = 0 ; i(); @@ -154,16 +156,16 @@ package popForm public function update(content:PopMenuFields):void { - for(var i = 0 ; i0 && buttonList[0]!=null) + { + buttonList[0].select() + } + } - private function clicableFieldSelects(e:MouseEvent) + private function clicableFieldSelects(e:MouseEvent):void { - //trace("Dispatch selected field"); + //SaffronLogger.log("Dispatch selected field"); var targ:PopField = e.currentTarget as PopField ; targ.title; targ.data ; @@ -576,13 +612,13 @@ package popForm this.dispatchEvent(new PopMenuEvent(PopMenuEvent.FIELD_SELECTED,targ.title,fieldData,targ.title,true)); } - public function updateScrollheight() + public function updateScrollheight():void { - trace("myHieghtPlus : "+maxAreaMC.height+'+'+stagePlusHaight+'+'+myHieghtPlus); + SaffronLogger.log("myHieghtPlus : "+maxAreaMC.height+'+'+stagePlusHaight+'+'+myHieghtPlus); var scrollRect:Rectangle = new Rectangle(this.x-maxAreaMC.width/2,thisY,maxAreaMC.width,maxAreaMC.height+stagePlusHaight+myHieghtPlus) ; var areaRect:Rectangle = new Rectangle(maxAreaMC.width/-2,0,maxAreaMC.width,this.height+ylist) ; scroll = new ScrollMT(this,scrollRect,areaRect,true); - trace("* : this.height:"+this.height+' vs scrollRect.height:'+scrollRect.height); + SaffronLogger.log("* : this.height:"+this.height+' vs scrollRect.height:'+scrollRect.height); if(this.height<=scrollRect.height+ylist) { scroll.reset(); @@ -591,13 +627,13 @@ package popForm } /**one of the buttons are selected*/ - private function buttonSelected(e:MouseEvent) + private function buttonSelected(e:MouseEvent):void { var outField:Object = {}; - for(var i = 0 ; i * When this event dispatches from field, you have to detect field id from buttonID value and you can get last field value by using field[buttinID]*/ diff --git a/popForm/PopMenuFields.as b/popForm/PopMenuFields.as index 30f95e73..c460be86 100644 --- a/popForm/PopMenuFields.as +++ b/popForm/PopMenuFields.as @@ -63,7 +63,7 @@ /**add new field
* frameForDirection: 1 for rtl and 2 for ltr script
* if the field is read only, you can set numLines to 0 and make it change the lines by it's needs*/ - public function addField(tagName:String,fieldDefault:*='',keyBoardType:String = SoftKeyboardType.DEFAULT,isPass:Boolean=false,Editable:Boolean = true,isArabic_v:Boolean=true,numLine:uint=1,frameForDirection:uint=0,fieldColorFrame:uint=1,maxChar:uint=0,MultiLineTag:Boolean=false,Align:Boolean=true) + public function addField(tagName:String,fieldDefault:*='',keyBoardType:String = SoftKeyboardType.DEFAULT,isPass:Boolean=false,Editable:Boolean = true,isArabic_v:Boolean=true,numLine:uint=1,frameForDirection:uint=0,fieldColorFrame:uint=1,maxChar:uint=0,MultiLineTag:Boolean=false,Align:Boolean=true):void { if(frameForDirection==0) { @@ -71,7 +71,7 @@ } /*if(frameForDirection==1 && isArabic_v==false) { - trace("**** PopField conflict on text direction solved"); + SaffronLogger.log("**** PopField conflict on text direction solved"); isArabic_v = true ; }*/ keyBoardType = (keyBoardType==null)?SoftKeyboardType.DEFAULT:keyBoardType; @@ -99,7 +99,7 @@ maxCharacters.push(maxChar); } - public function addRadioListField(tagName:String,popFieldOptions:Array,fieldDefault:*='',isArabic_v:Boolean=true,frameForDirection:uint=1,fieldColorFrame:uint=1,Align:Boolean=true) + public function addRadioListField(tagName:String,popFieldOptions:Array,fieldDefault:*='',isArabic_v:Boolean=true,frameForDirection:uint=1,fieldColorFrame:uint=1,Align:Boolean=true):void { tagNames.push(tagName); if(fieldDefault==null) @@ -124,7 +124,7 @@ maxCharacters.push(0); } - public function addPhoneField(tagName:String,fieldDefault:String='',isArabic_v:Boolean=true,frameForDirection:uint=1,fieldColorFrame:uint=1,isEditable:Boolean=true) + public function addPhoneField(tagName:String,fieldDefault:String='',isArabic_v:Boolean=true,frameForDirection:uint=1,fieldColorFrame:uint=1,isEditable:Boolean=true):void { tagNames.push(tagName); fieldDefaults.push(fieldDefault); @@ -147,7 +147,7 @@ /**add new field
* frameForDirection: 1 for rtl and 2 for ltr script*/ - public function addClickField(tagName:String,fieldDefault:String='',/*keyBoardType:String = SoftKeyboardType.DEFAULT*//*,isPass:Boolean=false*//*,Editable:Boolean = true,*/isArabic_v:Boolean=true,numLine:uint=1,frameForDirection:uint=1,fieldColorFrame:uint=1) + public function addClickField(tagName:String,fieldDefault:String='',/*keyBoardType:String = SoftKeyboardType.DEFAULT*//*,isPass:Boolean=false*//*,Editable:Boolean = true,*/isArabic_v:Boolean=true,numLine:uint=1,frameForDirection:uint=1,fieldColorFrame:uint=1):void { //keyBoardType = (keyBoardType==null)?SoftKeyboardType.DEFAULT:keyBoardType; @@ -172,7 +172,7 @@ /**add new field
* frameForDirection: 1 for rtl and 2 for ltr script*/ - public function addDateField(tagName:String,fieldDefaultDates:Date=null,Editable:Boolean = true,isArabic_v:Boolean=true,frameForDirection:uint=1,fieldColorFrame:uint=1) + public function addDateField(tagName:String,fieldDefaultDates:Date=null,Editable:Boolean = true,isArabic_v:Boolean=true,frameForDirection:uint=1,fieldColorFrame:uint=1):void { //keyBoardType = (keyBoardType==null)?SoftKeyboardType.DEFAULT:keyBoardType; @@ -197,7 +197,7 @@ /**add new field
* frameForDirection: 1 for rtl and 2 for ltr script*/ - public function addBooleanField(tagName:String,booleanValue:Boolean,frameForDirection:uint=1,fieldColorFrame:uint=1,Arabic:Boolean=true) + public function addBooleanField(tagName:String,booleanValue:Boolean,frameForDirection:uint=1,fieldColorFrame:uint=1,Arabic:Boolean=true):void { //keyBoardType = (keyBoardType==null)?SoftKeyboardType.DEFAULT:keyBoardType; tagNames.push(tagName); @@ -221,7 +221,7 @@ /**add new field
* frameForDirection: 1 for rtl and 2 for ltr script*/ - public function addTimeField(tagName:String,fieldDefaultDates:Date=null,Editable:Boolean = true,isArabic_v:Boolean=true,frameForDirection:uint=1,fieldColorFrame:uint=1) + public function addTimeField(tagName:String,fieldDefaultDates:Date=null,Editable:Boolean = true,isArabic_v:Boolean=true,frameForDirection:uint=1,fieldColorFrame:uint=1):void { //keyBoardType = (keyBoardType==null)?SoftKeyboardType.DEFAULT:keyBoardType; diff --git a/popForm/PopMenuTypes.as b/popForm/PopMenuTypes.as index 2a518f55..4d1fe2cc 100644 --- a/popForm/PopMenuTypes.as +++ b/popForm/PopMenuTypes.as @@ -23,13 +23,13 @@ } /**this is a answer type of pop ups*/ - public static function get DEFAULT() + public static function get DEFAULT():PopMenuTypes { return new PopMenuTypes(1/*,0xFF33CC*/); } /**this is a question type of pop ups*/ - public static function get CAUTION() + public static function get CAUTION():PopMenuTypes { return new PopMenuTypes(2/*,0x00cc00*/); } diff --git a/restDoaService/RestDoaEvent.as b/restDoaService/RestDoaEvent.as index 153ca347..5ba2c71d 100644 --- a/restDoaService/RestDoaEvent.as +++ b/restDoaService/RestDoaEvent.as @@ -20,6 +20,8 @@ package restDoaService /**The web service result was update, no need to change the result*/ public static const SERVER_WAS_UPDATED:String = "SERVER_WAS_UPDATED" ; + + public static const SERVER_UNAUTHORIZED:String = "SERVER_UNAUTHORIZED" ; public static const TITLE_ERROR:String = "TITLE_ERROR"; diff --git a/restDoaService/RestDoaService.as b/restDoaService/RestDoaService.as index b671a63e..e1579ebb 100644 --- a/restDoaService/RestDoaService.as +++ b/restDoaService/RestDoaService.as @@ -31,7 +31,7 @@ { if(sharedObject == null) { - //trace("♠ Set up shared Object"); + //SaffronLogger.log("♠ Set up shared Object"); sharedObject = SharedObject.getLocal('restMelkFullCash','/'); } } @@ -40,19 +40,19 @@ { setUpStorage(); var cash:String = sharedObject.data[id]; - //trace("♠ Load "+id+" from tht shared object"); + //SaffronLogger.log("♠ Load "+id+" from tht shared object"); if(cash == null) { return ''; } - //trace("♠ Loaded id is : "+cash); + //SaffronLogger.log("♠ Loaded id is : "+cash); return cash ; } private static function set(id:String,value:String):void { setUpStorage(); - //trace("♠ set the "+id+" to "+value); + //SaffronLogger.log("♠ set the "+id+" to "+value); sharedObject.data[id] = value ; sharedObject.flush(); } @@ -78,7 +78,7 @@ serverDomain = ServerDomain ; //UId; //UIdAuth; - trace("Rest service is starts on : "+serverDomain); + SaffronLogger.log("Rest service is starts on : "+serverDomain); } diff --git a/restDoaService/RestDoaServiceCaller.as b/restDoaService/RestDoaServiceCaller.as index d1afbcbd..39b73e8a 100644 --- a/restDoaService/RestDoaServiceCaller.as +++ b/restDoaService/RestDoaServiceCaller.as @@ -17,9 +17,8 @@ import flash.utils.ByteArray; import flash.utils.clearTimeout; import flash.utils.setTimeout; - - import contents.alert.SaffronLogger; import mteam.FuncManager; + import contents.alert.Alert; /**Cannot connect to server*/ [Event(name="CONNECTION_ERROR", type="restDoaService.RestDoaEvent")] @@ -37,6 +36,8 @@ [Event(name="progress", type="flash.events.ProgressEvent")] /**Dispatch respond header*/ [Event(name="httpResponseStatus", type="flash.events.HTTPStatusEvent")] + /**Cannot authorized users*/ + [Event(name="SERVER_UNAUTHORIZED", type="flash.events.RestDoaEvent")] public class RestDoaServiceCaller extends EventDispatcher { /**200:Ok
@@ -60,6 +61,7 @@ private static var webServiceId:uint = 0 ; + private static var _fake_no_net:Boolean = false ; public function get pureData():String { @@ -81,9 +83,6 @@ /**This is the last acceptable date for loaded value*/ private var offlineDate:Date ; - /**This is the value*/ - //private var parser:RestFullJSONParser ; - public var requestedData:Object ; /**Service id*/ @@ -101,8 +100,16 @@ /**Do not pass null value as RequestedData, it will cause an Error!!
* Integer or numeric values will loose*/ - public function RestDoaServiceCaller(myWebServiceLocation:String,RequestedData:Object,offlineDataIsOK_v:Boolean=true,instantOfflineData_v:Boolean=false,maximomOfflineData:Date = null,useGetMethod:Boolean=false) + public function RestDoaServiceCaller(myWebServiceLocation:String,RequestedData:Object,offlineDataIsOK_v:Boolean=true,instantOfflineData_v:Boolean=false,maximomOfflineData:Date = null,useGetMethod:*=URLRequestMethod.POST) { + if(useGetMethod==true) + { + useGetMethod = URLRequestMethod.GET; + } + else if(useGetMethod==false) + { + useGetMethod = URLRequestMethod.POST; + } if(maximomOfflineData==null) { maximomOfflineData = new Date(); @@ -130,23 +137,16 @@ pureRequest = new URLRequest(RestDoaService.domain+myWebServiceLocation); } - isGet = useGetMethod; - if(useGetMethod) - { - pureRequest.method = URLRequestMethod.GET; - } - else - { - pureRequest.method = URLRequestMethod.POST; + isGet = useGetMethod==URLRequestMethod.GET; + pureRequest.method = useGetMethod; + if(!isGet) pureRequest.contentType = 'application/json'; - } - updateHeaders(); requestLoader = new URLLoader(); if(requestedData is ByteArray) { - trace("Requested type is Bitnary"); + SaffronLogger.log("Requested type is Bitnary"); requestLoader.dataFormat = URLLoaderDataFormat.BINARY ; } else @@ -159,9 +159,14 @@ requestLoader.addEventListener(ProgressEvent.PROGRESS,dispatchProgress); } - public function then(onConnectionError:Function):RestDoaServiceCaller + public static function cutConnect(status:Boolean=true):void { - resultReturnedFunc = onConnectionError ; + _fake_no_net = status ; + } + + public function then(onResponded:Function):RestDoaServiceCaller + { + resultReturnedFunc = onResponded ; return this ; } @@ -188,7 +193,7 @@ private function serverHeaderReceived(e:HTTPStatusEvent):void { - trace("******** *** *** * ** HTTP headers received : "+e.status); + SaffronLogger.log("******** *** *** * ** HTTP headers received : "+e.status); HTTPStatus = e.status ; RestDoaService.eventDispatcher.dispatchEvent(e.clone()); this.dispatchEvent(e.clone()); @@ -221,7 +226,7 @@ /**Dispatch proggress event*/ protected function dispatchProgress(event:ProgressEvent):void { - trace("--Rest doa service progress--",event.bytesLoaded,event.bytesTotal+' > '+myId); + SaffronLogger.log("--Rest doa service progress--",event.bytesLoaded,event.bytesTotal+' > '+myId); this.dispatch(new ProgressEvent(ProgressEvent.PROGRESS,false,false,event.bytesLoaded,event.bytesTotal)); } @@ -249,16 +254,16 @@ RestDoaService.isOnline = false ; _isLoading = false ; HTTPStatus = 502 ; - trace("No internet connection : "+HTTPStatus); + SaffronLogger.log("No internet connection : "+HTTPStatus); if(controllData && offlineDataIsOK) { var savedData:* = RestServiceSaver.load(myId,myParams,pureRequest.requestHeaders); if(savedData != null) { - trace("Saved data is not null"); + SaffronLogger.log("Saved data is not null"); if(RestDoaService.debug_show_results) { - trace("* cashed data for "+myId+" : "+savedData); + SaffronLogger.log("* cashed data for "+myId+" : "+savedData); } parsLoadedData(savedData,true,true); return ; @@ -315,13 +320,17 @@ { try { - trace("* fresh data for "+myId+" : "+JSON.stringify(JSON.parse(requestLoader.data),null,' ')); + SaffronLogger.log("* fresh data for "+myId+" : "+JSON.stringify(JSON.parse(requestLoader.data),null,' ')); } catch(e) { - trace("* JSON model had problem : "+requestLoader.data); + SaffronLogger.log("* JSON model had problem : "+requestLoader.data); } } + if(HTTPStatus == 401) + { + dispatch(new RestDoaEvent(RestDoaEvent.SERVER_UNAUTHORIZED,HTTPStatus,true,getRequestedData,null)) + } //Alert.show("requestLoaded : "+JSON.stringify(pureRequest)); if(HTTPStatus==502 || HTTPStatus==500/* && requestLoader.data==''*/) { @@ -340,10 +349,10 @@ { var serverErrorBool:Boolean = false ; var pureRecevedData:String = String(loadedData); - trace("Receved data "+myId+": "+((pureRecevedData.length<1000)?pureRecevedData:"[larg file : "+pureRecevedData.length+"]")); + SaffronLogger.log("Receved data "+myId+": "+((pureRecevedData.length<1000)?pureRecevedData:"[larg file : "+pureRecevedData.length+"]")); var correctedLoadedData:String = pureRecevedData;//pureRecevedData.substring(1,pureRecevedData.length-1).split('\\"').join('\"').split("\\\\u003cbr\\\\u003e").join('\\n').split("
").join('\\n'); //correctedLoadedData = StringFunctions.clearDoubleQuartmarksOnJSON(correctedLoadedData); - //trace("Corrected data is : "+correctedLoadedData); + //SaffronLogger.log("Corrected data is : "+correctedLoadedData); if((ignoreHTTPStatus || (HTTPStatus!=502 && HTTPStatus!=500)) && requestedData!=null && pureRecevedData!='') { if(loadedData is String) @@ -363,7 +372,7 @@ if(pureRecevedData.toLowerCase() != 'true') { serverErrorBool = true ; - trace("Data format error"); + SaffronLogger.log("Data format error"); } } @@ -378,7 +387,7 @@ } else { - trace("I Cannot receive any other types"); + SaffronLogger.log("I Cannot receive any other types"); serverErrorBool = true ; } } @@ -388,14 +397,14 @@ return; } //the receved data is not converted correctly - //parser = new RestFullJSONParser(loadedData,requestedData); + //parser = new JSONParser(loadedData,requestedData); var oldPureData:String = lastPureData ; lastPureData = loadedData ; if(serverErrorBool) { - trace("Server problem"); + SaffronLogger.log("Server problem"); //if(this.hasEventListener(RestEvent.SERVER_ERROR)) var serverError:RestDoaEvent = new RestDoaEvent(RestDoaEvent.SERVER_ERROR,HTTPStatus,isConnected,getRequestedData,requestedData) ; if(hasErrorListenerAndDispatchOnglobal(serverError)) @@ -407,7 +416,7 @@ } else { - trace("User is not listening to ServerError, so ConnectionError Dispatches"); + SaffronLogger.log("User is not listening to ServerError, so ConnectionError Dispatches"); noInternet(null,false); } } @@ -418,12 +427,12 @@ { RestServiceSaver.save(myId,myParams,loadedData,pureRequest.requestHeaders); } - trace("Data is ready to use"); + SaffronLogger.log("Data is ready to use"); if(onUpdateProccess) { if(oldPureData!=loadedData) { - trace("* This update is new"); + SaffronLogger.log("* This update is new"); //I have to upste lastPureData befor dispatching the event if(this.hasEventListener(RestDoaEvent.SERVER_RESULT_UPDATE)) { @@ -437,7 +446,7 @@ } else { - trace("* Nothing change on this update"); + SaffronLogger.log("* Nothing change on this update"); dispatch(new RestDoaEvent(RestDoaEvent.SERVER_WAS_UPDATED,HTTPStatus,isConnected,getRequestedData,requestedData)); } } @@ -445,17 +454,17 @@ { //this.dispatchEvent(new RestEvent(RestEvent.SERVER_RESULT)); //I have to upste lastPureData befor dispatching the event - trace("Result event dispatching"); + SaffronLogger.log("Result event dispatching"); dispatch(new RestDoaEvent(RestDoaEvent.SERVER_RESULT,HTTPStatus,isConnected,getRequestedData,requestedData)) } } } /**Values are not case sencitive*/ - protected function loadParam(obj:Object=null,isDataForm:Boolean=false):void + protected function loadParam(obj:Object=null,isDataForm:Boolean=false,clearFunctions:Boolean=true):void { HTTPStatus = 0 ; - cansel(); + cansel(clearFunctions); updateHeaders(); isConnected = false ; onUpdateProccess = false ; @@ -491,14 +500,14 @@ { getRequestedData = obj; var urlVars:URLVariables; - //trace("Send this data : "+JSON.stringify(myParams,null,'\t')); + //SaffronLogger.log("Send this data : "+JSON.stringify(myParams,null,'\t')); if(isGet) { myParams = JSONParser.stringify(obj) ; var readableObject:Object = Obj.createReadAbleObject(obj);// .myParams ; urlVars = new URLVariables(); - for(var i in readableObject) + for(var i:* in readableObject) { urlVars[i] = readableObject[i] ;//a1=123&a2=32 || CaseTbl=(a1=123&a2=32) } @@ -519,12 +528,12 @@ } else { - myParams = RestFullJSONParser.stringify(obj) ; + myParams = JSONParser.stringify(obj) ; pureRequest.data = myParams } - //trace('myParams :',myParams) - // trace('parse :',JSON.parse(myParams)) + //SaffronLogger.log('myParams :',myParams) + // SaffronLogger.log('parse :',JSON.parse(myParams)) // var str:String = '{"KindRoof":15,"KindCabinet":27,"Loby":false,"Masahat":0,"Mobile":"","EmailAddress":"","Metraj":0,"Camera":false,"Nama":81,"Negahban":false,"Parking":false,"Pasio":false,"Pele":false,"Pic":["/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAMABAADASIAAhEBAxEB/"],"Pool":false,"Price1":0,"Age":"0","Price2":0,"Anten":false,"Sarmayesh":87,"Shomineh":false,"CaseSide":87,"Shooting":false,"Comment":"","Sona":false,"Confine":"","Storage":false,"CountBed":0,"Takhlie":false,"CountFloor":0,"Tel":false,"CountPoint":true,"TelUser":"","CountUnit":0,"Unit":"","Door":false,"Windows":35,"Family":"","kindService":87,"Elevator":false,"Lat":35.7137859,"Fire":false,"Lon":51.4148809,"Floor":"0","Furned":false,"Garmayesh":87,"Gas":false,"IPhone":false,"IdAgency":0,"IdArea":1,"IdCity":1,"IdKindCase":-1,"IdKindRequest":1,"IdRange":1,"IdState":1,"IdUsers":0,"Point":true,"KindKitchen":21}' @@ -534,7 +543,7 @@ } } - trace("instantOfflineData : "+instantOfflineData); + SaffronLogger.log("instantOfflineData : "+instantOfflineData); if(instantOfflineData) { var savedData:* = RestServiceSaver.load(myId,myParams,pureRequest.requestHeaders) ; @@ -543,9 +552,9 @@ var expired:Boolean = offlineDate.time>RestServiceSaver.lastCashDate;//RestServiceSaver.isExpired(myId,myParams,offlineDate); if(RestDoaService.debug_show_results) { - trace("* instant cashed data for "+myId+" : "+savedData); + SaffronLogger.log("* instant cashed data for "+myId+" : "+savedData); } - FuncManager.callAsyncOnFrame(function(){ + FuncManager.callAsyncOnFrame(function():void{ parsLoadedData(savedData); if(expired) { @@ -553,7 +562,7 @@ } else { - trace("* no need to update instant data") + SaffronLogger.log("* no need to update instant data") return ; } }) @@ -562,7 +571,7 @@ cansel(false); - trace(myId+" : "+myParams); + SaffronLogger.log(myId+" : "+myParams); webServiceId++ ; if(logger) { @@ -580,17 +589,27 @@ //debug line //navigateToURL(pureRequest); _isLoading = true ; - requestLoader.load(pureRequest); + if(_fake_no_net) + { + setTimeout(function():void{ + requestLoader.dispatchEvent(new IOErrorEvent(IOErrorEvent.IO_ERROR,true,false,'no net')); + },100) + } + else + { + requestLoader.load(pureRequest); + } //noInternet(); } - public function reLoad(delay:uint=20000,dontReturnOfflineData:Boolean=false):void + public function reLoad(delay:uint=20000,dontReturnOfflineData:Boolean=false):RestDoaServiceCaller { cansel(false); offlineDate = new Date() ; offlineDataIsOK = !dontReturnOfflineData ; instantOfflineData = false ; - timerId = setTimeout(loadParam,delay) + timerId = setTimeout(loadParam,delay,null,false,false); + return this ; } public function cancel():void @@ -615,7 +634,7 @@ } catch(e) { - //trace("No stream opened :\n"+e); + //SaffronLogger.log("No stream opened :\n"+e); } } } @@ -661,7 +680,7 @@ functToCall = connectionErrorFunc ; break ; } - //trace("*** *** ***** DispatchEvent : "+event.type+" > "+functToCall); + //SaffronLogger.log("*** *** ***** DispatchEvent : "+event.type+" > "+functToCall); if(functToCall!=null) { if(functToCall.length>0) diff --git a/restDoaService/RestFullJSONParser.as b/restDoaService/RestFullJSONParser.as index 28866c45..25c170b5 100644 --- a/restDoaService/RestFullJSONParser.as +++ b/restDoaService/RestFullJSONParser.as @@ -18,7 +18,7 @@ package restDoaService /**This stringiy will make server standard date on json*/ public static function stringify(object:Object):String { - trace("*** use the JSONParser instead of RestFullJSONParsers"); + SaffronLogger.log("*** use the JSONParser instead of RestFullJSONParsers"); return JSONParser.stringify(object); } @@ -40,18 +40,18 @@ package restDoaService { if(fillThisObject is ByteArray) { - trace("Type is byte array : "+getQualifiedClassName(serverData)); + SaffronLogger.log("Type is byte array : "+getQualifiedClassName(serverData)); try { //(fillThisObject as ByteArray).endian = Endian.LITTLE_ENDIAN ; (fillThisObject as ByteArray).writeBytes(serverData); - trace("Byte length is : "+(fillThisObject as ByteArray).length); + SaffronLogger.log("Byte length is : "+(fillThisObject as ByteArray).length); (fillThisObject as ByteArray).position = 0 ; error = false ; } catch(e) { - trace("Byte array parse error "); + SaffronLogger.log("Byte array parse error "); exceptionType = ErrorEnum.BinaryError ; } return ; @@ -59,7 +59,7 @@ package restDoaService else if(fillThisObject is Vector.<*>) { //Clear vector if it is full - //trace("(model as Vector.<*>).length : "+(fillThisObject as Vector.<*>).length); + //SaffronLogger.log("(model as Vector.<*>).length : "+(fillThisObject as Vector.<*>).length); while((fillThisObject as Vector.<*>).length) { (fillThisObject as Vector.<*>).pop(); @@ -75,7 +75,7 @@ package restDoaService } catch(e) { - trace("JSON is not parsable"); + SaffronLogger.log("JSON is not parsable"); exceptionType = ErrorEnum.JsonParsProblem ; } } diff --git a/restDoaService/RestServiceSaver.as b/restDoaService/RestServiceSaver.as index 250ef20d..b8256edf 100644 --- a/restDoaService/RestServiceSaver.as +++ b/restDoaService/RestServiceSaver.as @@ -19,7 +19,7 @@ var cash:* = SavedDatas2.load(valueName) ; lastCashDate = SavedDatas2.savedDate ; - trace("Load > "+valueName+' ○ '+cash+' ○'); + SaffronLogger.log("Load > "+valueName+' ○ '+cash+' ○'); return cash; } @@ -42,10 +42,10 @@ public static function save(id:String,jsonParam:String,value:*,headerArray:Array=null):void { - //trace("**Values saved"); + //SaffronLogger.log("**Values saved"); var valueName:String = generateID(id,jsonParam,headerArray); - trace("○ jsonParam is : "+jsonParam); - trace("Save > "+valueName+" ○ "+value+' ○'); + SaffronLogger.log("○ jsonParam is : "+jsonParam); + SaffronLogger.log("Save > "+valueName+" ○ "+value+' ○'); SavedDatas2.save(valueName,value); } @@ -74,7 +74,7 @@ var ParametersArray:Array = Parameters.split('"').join('').split("{").join('').split("}").join('').split("[").join('').split("]").join('').split(','); ParametersArray.sort(); Parameters = ParametersArray.join(','); - //trace("Storage id is : "+Parameters+':'+Classid) + //SaffronLogger.log("Storage id is : "+Parameters+':'+Classid) return Classid+':'+Parameters+':'+RestDoaService.serverDomain+headerString; } } diff --git a/restService/RestFullJSONParser.as b/restService/RestFullJSONParser.as index c90f404e..dde62320 100644 --- a/restService/RestFullJSONParser.as +++ b/restService/RestFullJSONParser.as @@ -18,7 +18,7 @@ package restService /**This stringiy will make server standard date on json*/ public static function stringify(object:Object):String { - trace("*** use the JSONParser instead of RestFullJSONParsers"); + SaffronLogger.log("*** use the JSONParser instead of RestFullJSONParsers"); return JSONParser.stringify(object); } @@ -45,18 +45,18 @@ package restService { if(fillThisObject is ByteArray) { - trace("Type is byte array : "+getQualifiedClassName(serverData)); + SaffronLogger.log("Type is byte array : "+getQualifiedClassName(serverData)); try { //(fillThisObject as ByteArray).endian = Endian.LITTLE_ENDIAN ; (fillThisObject as ByteArray).writeBytes(serverData); - trace("Byte length is : "+(fillThisObject as ByteArray).length); + SaffronLogger.log("Byte length is : "+(fillThisObject as ByteArray).length); (fillThisObject as ByteArray).position = 0 ; error = false ; } catch(e) { - trace("Byte array parse error "); + SaffronLogger.log("Byte array parse error "); exceptionType = ErrorEnum.BinaryError ; } return ; @@ -64,7 +64,7 @@ package restService else if(fillThisObject is Vector.<*>) { //Clear vector if it is full - //trace("(model as Vector.<*>).length : "+(fillThisObject as Vector.<*>).length); + //SaffronLogger.log("(model as Vector.<*>).length : "+(fillThisObject as Vector.<*>).length); while((fillThisObject as Vector.<*>).length) { (fillThisObject as Vector.<*>).pop(); @@ -81,7 +81,7 @@ package restService } catch(e) { - trace("JSON is not parsable"); + SaffronLogger.log("JSON is not parsable"); exceptionType = ErrorEnum.JsonParsProblem ; } } diff --git a/restService/RestService.as b/restService/RestService.as index d1c76210..d9a9235a 100644 --- a/restService/RestService.as +++ b/restService/RestService.as @@ -26,7 +26,7 @@ package restService { if(sharedObject == null) { - //trace("♠ Set up shared Object"); + //SaffronLogger.log("♠ Set up shared Object"); sharedObject = SharedObject.getLocal('restFullCash','/'); } } @@ -35,19 +35,19 @@ package restService { setUpStorage(); var cash:String = sharedObject.data[id]; - //trace("♠ Load "+id+" from tht shared object"); + //SaffronLogger.log("♠ Load "+id+" from tht shared object"); if(cash == null) { return ''; } - //trace("♠ Loaded id is : "+cash); + //SaffronLogger.log("♠ Loaded id is : "+cash); return cash ; } private static function set(id:String,value:String):void { setUpStorage(); - //trace("♠ set the "+id+" to "+value); + //SaffronLogger.log("♠ set the "+id+" to "+value); sharedObject.data[id] = value ; sharedObject.flush(); } @@ -68,7 +68,7 @@ package restService { _UId = get(id_UId); } - //trace("♠ Get _UId : "+_UId); + //SaffronLogger.log("♠ Get _UId : "+_UId); return _UId; } @@ -76,23 +76,23 @@ package restService private static function setUIdAuth(value:String):void { - //trace("♠ set id_UIdAuth from "+_UIdAuth+" To "+value); + //SaffronLogger.log("♠ set id_UIdAuth from "+_UIdAuth+" To "+value); if(_UIdAuth!=value) { set(id_UIdAuth,value); _UIdAuth = value; - //trace("♠ done"); + //SaffronLogger.log("♠ done"); } } private static function setUId(value:String):void { - //trace("♠ set _UId from "+_UId+" To "+value); + //SaffronLogger.log("♠ set _UId from "+_UId+" To "+value); if(_UId!=value) { set(id_UId,value); _UId = value; - //trace("♠ done"); + //SaffronLogger.log("♠ done"); } } @@ -115,7 +115,7 @@ package restService serverDomain = ServerDomain ; UId; UIdAuth; - trace("Rest service is starts on : "+serverDomain); + SaffronLogger.log("Rest service is starts on : "+serverDomain); } /**Feal these values from signInViewModel to make user knownAsLoged in*/ @@ -123,14 +123,14 @@ package restService { setUId(uId) ; setUIdAuth(uIdAuth) ; - trace("User is logged in"); + SaffronLogger.log("User is logged in"); } public static function logOut():void { setUId(''); setUIdAuth(''); - trace("User is logged out"); + SaffronLogger.log("User is logged out"); } /**Returns true if user is logged in.*/ diff --git a/restService/RestServiceCaller.as b/restService/RestServiceCaller.as index d8845519..214bed7d 100644 --- a/restService/RestServiceCaller.as +++ b/restService/RestServiceCaller.as @@ -97,7 +97,7 @@ //headers.Add("dh-UAuth", signIn.Member.UIdAuth.ToString()); if(RestService.UId == '' || RestService.UIdAuth == '') { - trace("*** Warning, User is not logged in yet ***"); + SaffronLogger.log("*** Warning, User is not logged in yet ***"); } var newHeader3:URLRequestHeader = new URLRequestHeader('dh-U',RestService.UId); @@ -111,7 +111,7 @@ requestLoader = new URLLoader(); if(requestedData is ByteArray) { - trace("Requested type is Bitnary"); + SaffronLogger.log("Requested type is Bitnary"); requestLoader.dataFormat = URLLoaderDataFormat.BINARY ; } else @@ -135,16 +135,16 @@ private function noInternet(e:IOErrorEvent=null,controllData:Boolean=true) { - trace("No internet connection"); + SaffronLogger.log("No internet connection"); if(controllData && offlineDataIsOK) { var savedData:* = RestServiceSaver.load(myId,myParams); if(savedData != null) { - trace("Saved data is not null"); + SaffronLogger.log("Saved data is not null"); if(RestService.debug_show_results) { - trace("* cashed data for "+myId+" : "+savedData); + SaffronLogger.log("* cashed data for "+myId+" : "+savedData); } parsLoadedData(savedData,true); return ; @@ -163,11 +163,11 @@ { try { - trace("* fresh data for "+myId+" : "+JSON.stringify(JSON.parse(requestLoader.data),null,' ')); + SaffronLogger.log("* fresh data for "+myId+" : "+JSON.stringify(JSON.parse(requestLoader.data),null,' ')); } catch(e) { - trace("* JSON model had problem : "+requestLoader.data); + SaffronLogger.log("* JSON model had problem : "+requestLoader.data); } } @@ -184,7 +184,7 @@ if(parser.error) { - trace("Server problem"); + SaffronLogger.log("Server problem"); //if(this.hasEventListener(RestEvent.SERVER_ERROR)) var serverError:RestEvent = new RestEvent(RestEvent.SERVER_ERROR,parser.msgs,parser.exceptionType) ; if(hasErrorListenerAndDispatchOnglobal(serverError)) @@ -196,7 +196,7 @@ } else { - trace("User is not listening to ServerError, so ConnectionError Dispatches"); + SaffronLogger.log("User is not listening to ServerError, so ConnectionError Dispatches"); noInternet(null,false); } } @@ -207,26 +207,26 @@ { RestServiceSaver.save(myId,myParams,loadedData); } - trace("Data is ready to use"); + SaffronLogger.log("Data is ready to use"); if(onUpdateProccess) { if(oldPureData!=loadedData) { - trace("* This update is new"); + SaffronLogger.log("* This update is new"); //I have to upste lastPureData befor dispatching the event dispatch(new RestEvent(RestEvent.SERVER_RESULT_UPDATE)); //this.dispatchEvent(new RestEvent(RestEvent.SERVER_RESULT_UPDATE)); } else { - trace("* Nothing change on this update"); + SaffronLogger.log("* Nothing change on this update"); } } else { //this.dispatchEvent(new RestEvent(RestEvent.SERVER_RESULT)); //I have to upste lastPureData befor dispatching the event - trace("Result event dispatching"); + SaffronLogger.log("Result event dispatching"); dispatch(new RestEvent(RestEvent.SERVER_RESULT)) } } @@ -243,7 +243,7 @@ myParams = RestFullJSONParser.stringify(obj) ; pureRequest.data = myParams ; } - trace("instantOfflineData : "+instantOfflineData); + SaffronLogger.log("instantOfflineData : "+instantOfflineData); if(instantOfflineData) { var savedData:* = RestServiceSaver.load(myId,myParams); @@ -252,7 +252,7 @@ var expired:Boolean = RestServiceSaver.isExpired(myId,myParams,offlineDate); if(RestService.debug_show_results) { - trace("* instant cashed data for "+myId+" : "+savedData); + SaffronLogger.log("* instant cashed data for "+myId+" : "+savedData); } parsLoadedData(savedData); if(expired) @@ -261,7 +261,7 @@ } else { - trace("* no need to update instant data") + SaffronLogger.log("* no need to update instant data") return ; } } @@ -269,7 +269,7 @@ cansel(); - trace(myId+" : "+myParams); + SaffronLogger.log(myId+" : "+myParams); //debug line requestLoader.load(pureRequest); @@ -295,7 +295,7 @@ } catch(e) { - //trace("No stream opened :\n"+e); + //SaffronLogger.log("No stream opened :\n"+e); } } } diff --git a/restService/RestServiceSaver.as b/restService/RestServiceSaver.as index 4031d74a..f8fa3433 100644 --- a/restService/RestServiceSaver.as +++ b/restService/RestServiceSaver.as @@ -12,7 +12,7 @@ package restService { var valueName:String = generateID(id,jsonParam) ; var cash:* = SavedDatas2.load(valueName) ; - //trace("Load > "+valueName+' ○ '+cash+' ○'); + //SaffronLogger.log("Load > "+valueName+' ○ '+cash+' ○'); return cash; } @@ -35,10 +35,10 @@ package restService public static function save(id:String,jsonParam:String,value:*):void { - //trace("**Values saved"); + //SaffronLogger.log("**Values saved"); var valueName:String = generateID(id,jsonParam); - trace("○ jsonParam is : "+jsonParam); - // trace("Save > "+valueName+" ○ "+value+' ○'); + SaffronLogger.log("○ jsonParam is : "+jsonParam); + // SaffronLogger.log("Save > "+valueName+" ○ "+value+' ○'); SavedDatas2.save(valueName,value); } @@ -51,7 +51,7 @@ package restService } Parameters = Parameters.split('"').join('').split("{").join('').split("}").join('').split("[").join('').split("]").join(''); - //trace("Storage id is : "+Parameters+':'+Classid) + //SaffronLogger.log("Storage id is : "+Parameters+':'+Classid) return Classid+':'+Parameters+':'+RestService.UId+RestService.serverDomain; } } diff --git a/save/MultiSave.as b/save/MultiSave.as index ca9e1032..55d94f68 100644 --- a/save/MultiSave.as +++ b/save/MultiSave.as @@ -73,7 +73,7 @@ package save } catch (error:Error) { - trace("Error...Could not write SharedObject to disk"); + SaffronLogger.log("Error...Could not write SharedObject to disk"); } } diff --git a/save/MultiSaveString.as b/save/MultiSaveString.as index 5c9eab44..7d6438af 100644 --- a/save/MultiSaveString.as +++ b/save/MultiSaveString.as @@ -71,7 +71,7 @@ package save } catch (error:Error) { - trace("Error...Could not write SharedObject to disk"); + SaffronLogger.log("Error...Could not write SharedObject to disk"); } } diff --git a/save/Save.as b/save/Save.as index ab397957..96bf3eba 100644 --- a/save/Save.as +++ b/save/Save.as @@ -57,7 +57,7 @@ } catch (error:Error) { - trace("Error...Could not write SharedObject to disk"); + SaffronLogger.log("Error...Could not write SharedObject to disk"); } } } diff --git a/sliderMenu/SliderButtonSwitcher.as b/sliderMenu/SliderButtonSwitcher.as index 160fdfc2..860b7f27 100644 --- a/sliderMenu/SliderButtonSwitcher.as +++ b/sliderMenu/SliderButtonSwitcher.as @@ -40,12 +40,12 @@ package sliderMenu { if(SliderManager.isOpen()) { - trace("Hide the menu"); + SaffronLogger.log("Hide the menu"); SliderManager.hide(); } else { - trace("Show the menu"); + SaffronLogger.log("Show the menu"); if(!SliderManager.lock_flag) { SliderManager.openMenu(); diff --git a/sliderMenu/SliderManager.as b/sliderMenu/SliderManager.as index 90cdd6b9..003514e7 100644 --- a/sliderMenu/SliderManager.as +++ b/sliderMenu/SliderManager.as @@ -61,6 +61,16 @@ package sliderMenu private static var manageMenusFrames:Boolean; private static var onlyFrameAnimation:Boolean; + + ////////////////////////Drag menu variables↓ + + private static var lastX:Number ; + private static var lastTime:int ; + + private static var deltaDraggedX:Number ; + private static var deltaTime:Number ; + + private static const minSpeedToActivateDrag:Number = 20 ; /////////////////////////////////// numerical variables↓ /**this variable tells the number of the accepted pixel from the stage */ @@ -137,6 +147,25 @@ package sliderMenu mouseFirstPose = null ; currentDraggingPose = MenuDirection; } + + private static function resetDragSpeed():void + { + lastTime = getTimer(); + lastX = myStage.mouseX ; + deltaDraggedX = 0 ; + } + + + private static function calculateDragSpeed():void + { + var currentTime:int = getTimer(); + deltaTime = currentTime - lastTime ; + lastTime = currentTime ; + var devideTime:Number = Math.floor(deltaTime/4) ; + deltaDraggedX = deltaDraggedX/Math.max(1,devideTime) ; + deltaDraggedX += myStage.mouseX - lastX; + lastX = myStage.mouseX ; + } /**hide all menus*/ public static function hide(instanceHide:Boolean=false):void @@ -163,7 +192,7 @@ package sliderMenu private static function contolMovement(e:MouseEvent):void { var currentPose:Point = new Point(myStage.mouseX,myStage.mouseY); - //trace("currentPose.x"+currentPose.x+" tempMouseFirstPose.x"+tempMouseFirstPose.x+" >> "+Math.abs(currentPose.x-tempMouseFirstPose.x)); + //SaffronLogger.log("currentPose.x"+currentPose.x+" tempMouseFirstPose.x"+tempMouseFirstPose.x+" >> "+Math.abs(currentPose.x-tempMouseFirstPose.x)); //ScrollMT.minScrollToLock = 200 ; if( ( @@ -304,7 +333,7 @@ package sliderMenu { mouseFirstPose = null ; var obj:MovieClip = addGetSlider(currentDraggingPose,null,0,true); - //trace("obj is : "+obj); + //SaffronLogger.log("obj is : "+obj); if(obj == null || !obj.hitTestPoint(myRoot.mouseX,myRoot.mouseY)) { currentDraggingPose = '' ; @@ -319,13 +348,14 @@ package sliderMenu /**start the drag*/ private static function checkDrag(e:MouseEvent):void { - if(lock_flag) + if(lock_flag || PopMenu.isOpen) { //menu is lock return ; } tempMouseFirstPose = new Point(myStage.mouseX,myStage.mouseY); + resetDragSpeed(); myStage.addEventListener(MouseEvent.MOUSE_MOVE,contolMovement); myStage.addEventListener(ScrollMTEvent.LOCK_SCROLL_TILL_MOUSE_UP,stopMovmentControl) @@ -370,8 +400,32 @@ package sliderMenu private static function stopDrag(e:MouseEvent):void { stopMovmentControl(); + calculateDragSpeed(); var currentMenu:MovieClip = addGetSlider(currentDraggingPose,null,0,true); + + //Alert.show("deltaDraggedX : "+deltaDraggedX); + + if(Math.abs(deltaDraggedX)>minSpeedToActivateDrag) + { + if(currentDraggingPose==LEFT_MENU) + { + if(deltaDraggedX<0) + setTimeout(hide,0); + else + mouseFirstPose = null ; + return; + } + if(currentDraggingPose==RIGHT_MENU) + { + if(deltaDraggedX>0) + setTimeout(hide,0); + else + mouseFirstPose = null ; + return; + } + } + if(readyToCloseMenuOnMouseUp!=0 && getTimer()-readyToCloseMenuOnMouseUp<200 && //currentMenu!=null && !currentMenu.hitTestPoint(myStage.mouseX,myStage.mouseY) ( ( @@ -390,6 +444,7 @@ package sliderMenu { setTimeout(hide,0); mouseFirstPose = null ; + return; } if(mouseFirstPose!=null && !lock_flag) { @@ -446,12 +501,15 @@ package sliderMenu } mouseFirstPose = null ; + return; } } /**animate the stage*/ private static function anim(e:Event):void { + if(mouseFirstPose!=null) + calculateDragSpeed(); var deltaPose:Point = new Point(0,0); var deltaPoseNumber:Number = addGetSlider(currentDraggingPose); if(currentDraggingPose==LEFT_MENU || currentDraggingPose==RIGHT_MENU) @@ -515,7 +573,7 @@ package sliderMenu deltaPose.y = Math.min(0,Math.max(deltaPose.y,-deltaPoseNumber)); } - //trace("myStage : "+myStage.x++); + //SaffronLogger.log("myStage : "+myStage.x++); if(moveStage) { if(slider_l!=null || slider_r!=null) @@ -734,9 +792,9 @@ package sliderMenu stageW = Math.round(temFullScreenWidth/scl); stageH = Math.round(temFullScreenHeight/scl); - trace('scale is : '+scl); - trace('stage W : '+stageW); - trace('stage H : '+stageH); + SaffronLogger.log('scale is : '+scl); + SaffronLogger.log('stage W : '+stageW); + SaffronLogger.log('stage H : '+stageH); lx = (stageW-myStage.stageWidth)/-2; rx = myStage.stageWidth-lx; diff --git a/socketJ/SocketJ.as b/socketJ/SocketJ.as index 5bd512e8..28d0763a 100644 --- a/socketJ/SocketJ.as +++ b/socketJ/SocketJ.as @@ -61,7 +61,7 @@ package socketJ protected static function socketClosed(event:Event):void { - trace("* SocketJ disconnected *"); + SaffronLogger.log("* SocketJ disconnected *"); if(shouldBeConnect) { connect(); @@ -70,25 +70,25 @@ package socketJ protected static function noConnectionAvailable(event:IOErrorEvent):void { - trace("* SocketJ no connection available, try to connect again"); + SaffronLogger.log("* SocketJ no connection available, try to connect again"); tryToConnectLater(); } protected static function socketConnected(event:Event):void { - trace("* SocketJ connected!! *"); + SaffronLogger.log("* SocketJ connected!! *"); tryToSendLastData(); } protected static function socketDataRecevied(event:ProgressEvent):void { // TODO Auto-generated method stub - trace("* SocketJ Some Data received *"); + SaffronLogger.log("* SocketJ Some Data received *"); } protected static function sercurityError(event:SecurityErrorEvent):void { - trace("* SocketJ security Error, Socket should be disconnect *"); + SaffronLogger.log("* SocketJ security Error, Socket should be disconnect *"); disconnect(); } @@ -97,7 +97,7 @@ package socketJ { disconnect(); - trace("* SocketJ try connect "+Ip+":"+Port+" *"); + SaffronLogger.log("* SocketJ try connect "+Ip+":"+Port+" *"); if(shouldBeConnect==false) { dispatcher.dispatchEvent(new Event(Event.CONNECT)); @@ -113,7 +113,7 @@ package socketJ /**There is no connection at all, try to connect later till disconnect function calls.*/ protected static function noInternetConnectionStablished(event:IOErrorEvent):void { - trace("* SocketJ no internet Connection Stablished *"); + SaffronLogger.log("* SocketJ no internet Connection Stablished *"); tryToConnectLater(); } @@ -135,7 +135,7 @@ package socketJ private static function internetConnectionIsOK(e:Event) { - trace("* SocketJ is connected to web, try to conect to your socket now"); + SaffronLogger.log("* SocketJ is connected to web, try to conect to your socket now"); socketListener.connect(Ip,Port); } @@ -147,7 +147,7 @@ package socketJ if(socketListener.connected) socketListener.close(); - trace("* SockjetJ Disconnected *"); + SaffronLogger.log("* SockjetJ Disconnected *"); if(shouldBeConnect==false) { @@ -189,13 +189,13 @@ package socketJ { if(dataToSendList.length>0) { - trace("* SocketJ try to send first data *"); + SaffronLogger.log("* SocketJ try to send first data *"); socketListener.writeUTFBytes(JSON.stringify(dataToSendList[0])); socketListener.flush(); } else { - trace("* SocketJ No data left to send *"); + SaffronLogger.log("* SocketJ No data left to send *"); } } @@ -203,7 +203,7 @@ package socketJ protected static function socketDataOutputOk(event:OutputProgressEvent):void { // TODO Auto-generated method stub - trace("* Socket data sent *"); + SaffronLogger.log("* Socket data sent *"); if(event.bytesPending==0) { dataToSendList.shift(); diff --git a/socketService/SocketCaller.as b/socketService/SocketCaller.as index a6f82cb1..e629a51f 100644 --- a/socketService/SocketCaller.as +++ b/socketService/SocketCaller.as @@ -56,7 +56,7 @@ /**Connection fails*/ protected function noConnectionAvailable(event:IOErrorEvent):void { - trace("!! The connection fails"); + SaffronLogger.log("!! The connection fails"); this.dispatchEvent(new Event(Event.UNLOAD)); } @@ -95,17 +95,17 @@ socketDataRecevied(null,oldData); if(maxAvailableDateForOffline==null && SocketServiceSaver.isExpired(funcName,sendThisJSON,maxAvailableDateForOffline)) { - trace("The offlie data dispatched but still need to get the new version of data from server"); + SaffronLogger.log("The offlie data dispatched but still need to get the new version of data from server"); } else { - trace("The dispached data is updated"); + SaffronLogger.log("The dispached data is updated"); return ; } } } - trace("try to connect to server for "+funcName); + SaffronLogger.log("try to connect to server for "+funcName); socketListener.connect(SocketInit.ip,SocketInit.port); } @@ -129,7 +129,7 @@ /**Socket connection is connected*/ private function socketConnected(e:Event):void { - trace(">>Now send this : "+sendThisJSON); + SaffronLogger.log(">>Now send this : "+sendThisJSON); this.dispatchEvent(new Event(Event.CONNECT)); socketListener.writeUTFBytes(sendThisJSON); socketListener.flush(); @@ -142,14 +142,14 @@ catchedData = new SocketReceivedFormat(); if(myAbsolutData==null) { - trace("<0) { receivedData = socketListener.readUTFBytes(socketListener.bytesAvailable); } else { - trace("!!! there is no data on the socket !!!"); + SaffronLogger.log("!!! there is no data on the socket !!!"); this.dispatchEvent(new ErrorEvent(ErrorEvent.ERROR)); return; } @@ -167,14 +167,14 @@ } catch(e:Error) { - trace("The server data is not parsable"); + SaffronLogger.log("The server data is not parsable"); this.dispatchEvent(new ErrorEvent(ErrorEvent.ERROR)); return ; } } else { - trace("error is :: "+receivedData); + SaffronLogger.log("error is :: "+receivedData); this.dispatchEvent(new ErrorEvent(ErrorEvent.ERROR)); return ; } @@ -186,7 +186,7 @@ if(debug) { - trace("The returned data is : "+JSON.stringify(catchedData,null,' ')); + SaffronLogger.log("The returned data is : "+JSON.stringify(catchedData,null,' ')); } var dataWasSentOnce:Boolean = dataSentOnce ; socketListener.close(); diff --git a/socketService/SocketServiceSaver.as b/socketService/SocketServiceSaver.as index 059d6376..4efa058a 100644 --- a/socketService/SocketServiceSaver.as +++ b/socketService/SocketServiceSaver.as @@ -8,7 +8,7 @@ package socketService { var valueName:String = generateID(id,jsonParam) ; var cash:String = SavedDatas2.load(valueName) as String ; - //trace("Load > "+valueName+' ○ '+cash+' ○'); + //SaffronLogger.log("Load > "+valueName+' ○ '+cash+' ○'); return cash; } @@ -31,10 +31,10 @@ package socketService public static function save(id:String,jsonParam:String,value:*):void { - //trace("**Values saved"); + //SaffronLogger.log("**Values saved"); var valueName:String = generateID(id,jsonParam); - trace("○ jsonParam is : "+jsonParam); - // trace("Save > "+valueName+" ○ "+value+' ○'); + SaffronLogger.log("○ jsonParam is : "+jsonParam); + // SaffronLogger.log("Save > "+valueName+" ○ "+value+' ○'); SavedDatas2.save(valueName,value); } @@ -47,7 +47,7 @@ package socketService } Parameters = Parameters.split('"').join('').split("{").join('').split("}").join('').split("[").join('').split("]").join(''); - //trace("Storage id is : "+Parameters+':'+Classid) + //SaffronLogger.log("Storage id is : "+Parameters+':'+Classid) return Classid+':'+Parameters+':'+SocketInit.ip+SocketInit.port; } } diff --git a/starlingPack/core/BitmapLoader.as b/starlingPack/core/BitmapLoader.as index ca7c1b5d..e8e4861d 100644 --- a/starlingPack/core/BitmapLoader.as +++ b/starlingPack/core/BitmapLoader.as @@ -25,7 +25,7 @@ public class BitmapLoader { } private function urlWasWrong(event:IOErrorEvent):void { - trace("*** requested url was wrong ***") + SaffronLogger.log("*** requested url was wrong ***") callError(); } @@ -36,7 +36,7 @@ public class BitmapLoader { } else { - trace("*** The loaded file was not a bitmap ***"); + SaffronLogger.log("*** The loaded file was not a bitmap ***"); callError(); return ; } @@ -72,7 +72,7 @@ public class BitmapLoader { /**You can take the bitmap directly from an input on the onLoadedFunction or loadedBitmap variable*/ public function load(imageURL:String,onLoadedFunction:Function,onErrorFunction:Function=null):void { - trace("*** Load "+imageURL+" on BitmapLoader class ***"); + SaffronLogger.log("*** Load "+imageURL+" on BitmapLoader class ***"); onLoaded = onLoadedFunction ; onError = onErrorFunction ; loader.load(new URLRequest(imageURL)); diff --git a/starlingPack/core/ScreenManager.as b/starlingPack/core/ScreenManager.as index d57f14b5..548fa09a 100644 --- a/starlingPack/core/ScreenManager.as +++ b/starlingPack/core/ScreenManager.as @@ -12,7 +12,7 @@ package starlingPack.core * Add this function to the Flash main: * private function manageStageSize(e:Event):void { - trace("ScreenManager.scaleFactor : "+ScreenManager.scaleFactor) + SaffronLogger.log("ScreenManager.scaleFactor : "+ScreenManager.scaleFactor) root.scaleX = root.scaleY = ScreenManager.scaleFactor ; root.x = ScreenManager.deltaXOnScaleFactor(); root.y = ScreenManager.deltaYOnScaleFactor(); @@ -137,7 +137,7 @@ package starlingPack.core { for(var i:int = 0 ; i[]; lastPose = new Vector.(); - trace("All touches removed"); + SaffronLogger.log("All touches removed"); return ; } for(var i:int ; i) { - trace('list field :',List_p) + SaffronLogger.log('list field :',List_p) } } } \ No newline at end of file diff --git a/tabMenu/TabItemBass.as b/tabMenu/TabItemBass.as index 3b4e8077..6e031c0d 100644 --- a/tabMenu/TabItemBass.as +++ b/tabMenu/TabItemBass.as @@ -43,7 +43,7 @@ package tabMenu } catch(e:Error) { - trace('<<>>'); + SaffronLogger.log('<<>>'); } _defaultTabe = this.name.split('_')[1]; TabMenuManager.event.addEventListener(TabMenuEvent.SELECT,onSelected); diff --git a/tabMenu/TabMenuManager.as b/tabMenu/TabMenuManager.as index 532fb101..45bd1928 100644 --- a/tabMenu/TabMenuManager.as +++ b/tabMenu/TabMenuManager.as @@ -24,7 +24,7 @@ package tabMenu } - for(var valueName in _currentTabe[GroupName_p]) + for(var valueName:* in _currentTabe[GroupName_p]) { _currentTabe[GroupName_p][valueName] = false; } diff --git a/tableManager/TableManager.as b/tableManager/TableManager.as index c965e91d..0bb21ef7 100644 --- a/tableManager/TableManager.as +++ b/tableManager/TableManager.as @@ -253,7 +253,7 @@ if(totalCell == listCopye.length) { - trace("End Of Current Part Table") + SaffronLogger.log("End Of Current Part Table") browsList(oldTotalCell,listCopye.length) scrol() diff --git a/tableManager/data/Pictrue.as b/tableManager/data/Pictrue.as index f5d36eef..4803b9c4 100644 --- a/tableManager/data/Pictrue.as +++ b/tableManager/data/Pictrue.as @@ -108,7 +108,7 @@ } catch (error:Error) { - trace("loader hasn't loaded yet"); + SaffronLogger.log("loader hasn't loaded yet"); } @@ -174,7 +174,7 @@ var pictrueLoader:Pictrue = this this.dispatchEvent(new TableEvents(TableEvents.PICTRUE_TALBE,null,this)) - //trace( "nameeee =",getQualifiedClassName( evt_p.target.content) ); + //SaffronLogger.log( "nameeee =",getQualifiedClassName( evt_p.target.content) ); } private function sizePic():Rectangle @@ -196,7 +196,7 @@ } public function unLoad() { - trace("***ouLoad****"); + SaffronLogger.log("***ouLoad****"); _loaderPage.unloadAndStop(); _loaderPage.unload() } diff --git a/webService/myWebService.as b/webService/myWebService.as index 590632da..d374eb5e 100644 --- a/webService/myWebService.as +++ b/webService/myWebService.as @@ -84,7 +84,7 @@ package webService { if(activatedOperations.indexOf(operationName) == -1) { - trace('activate operation'); + SaffronLogger.log('activate operation'); ws[operationName].resultFormat = "e4x" ; ws[operationName].addEventListener("result", Result) ; ws[operationName].addEventListener("fault", serviceNotFound) ; @@ -154,14 +154,14 @@ package webService { if(!isitConnected) { - trace('try to connect : '+webServiceWsdl); + SaffronLogger.log('try to connect : '+webServiceWsdl); if(DEBUG_DONOT_CONNECT) { ws.loadWSDL("no where"); } else { - //trace('send webServiceWsdl'); + //SaffronLogger.log('send webServiceWsdl'); ws.loadWSDL(webServiceWsdl); } } @@ -172,7 +172,7 @@ package webService { if(!isitConnected) { - trace('connection failds'); + SaffronLogger.log('connection failds'); for(var i = 0 ; i @@ -73,6 +79,30 @@ } offlineDate = newDate ; } + + public function catchThenRealad():void + { + reloadIfNotConnected = true ; + } + + public function then(onDataRetrived:Function):WebServiceCaller + { + func_onDataRetrived = onDataRetrived; + return this ; + } + + public function catch2(onError:Function):WebServiceCaller + { + func_onConnectionError = onError; + func_onError = onError; + return this ; + } + + public function onConnected2(onConnectedFunc:Function):WebServiceCaller + { + func_onConnected = onConnectedFunc; + return this ; + } /**If you dont enter a date, it will take current date as maximomOFflieneDate*/ public function WebServiceCaller(myWebServiceName:String,offlineDataIsOK_v:Boolean=true,justLoadOfline_v:Boolean=false,maximomOfflineData:Date = null) @@ -89,6 +119,10 @@ myWebService.activateOperation(myWebServiceName); offlineDataIsOK = offlineDataIsOK_v ; justLoadOffline = justLoadOfline_v ; + + func_onDataRetrived = null ; + func_onConnectionError = null ; + func_onError = null ; super(); } @@ -127,7 +161,7 @@ /**It is tile to reload service*/ private function reLoadLastRequest(/*e:TimerEvent*/):void { - trace("Service reloaded"); + SaffronLogger.log("Service reloaded"); loadParams.apply(this,myParam); } @@ -151,13 +185,16 @@ if(cashedData != null) { - generateDataAndDispatchEvent(cashedData,true); - //doNotDispatchEventsAgain = true ; - offlineValuesToSend = cashedData ; - if(LoadForDoubleControll) + setTimeout(function():void { - myWebService.Connect(onConnected,noInternet); - } + generateDataAndDispatchEvent(cashedData,true); + //doNotDispatchEventsAgain = true ; + offlineValuesToSend = cashedData ; + if(LoadForDoubleControll) + { + myWebService.Connect(onConnected,noInternet); + } + },0); } else { @@ -188,9 +225,9 @@ myWebService.CanselThisToken(myToken); } - private function onConnected() + private function onConnected():void { - trace("connected"); + SaffronLogger.log("connected"); //TODO: implement function myWebService.eventListen.addEventListener(WebEvent.EVENT_DISCONNECTED,noInternet); myWebService.eventListen.addEventListener(WebEvent.Result,loaded); @@ -225,7 +262,12 @@ connected = true ; cansel(); generateDataAndDispatchEvent(e.pureData); + /*if(func_onDataRetrived!=null) + { + func_onDataRetrived(); + }*/ this.dispatchEvent(new Event(Event.CONNECT)); + if(func_onConnected!=null)func_onConnected(); } } @@ -236,7 +278,7 @@ if(pureData==null) { pureData = WebServiceSaver.load(this,myParam); - //trace('cash loads : '+pureData); + //SaffronLogger.log('cash loads : '+pureData); } else if(offlineDataIsOK && pureData!=null && !dontSaveItAgain)//dontSaveItAgain added to prevent oversaving the cashed data again. it was destroies the save date { @@ -256,26 +298,26 @@ if(parsedSituation) { - //trace("Load complete"); - //trace("offlineValuesToSend : "+offlineValuesToSend); - //trace("pureData : "+pureData); + //SaffronLogger.log("Load complete"); + //SaffronLogger.log("offlineValuesToSend : "+offlineValuesToSend); + //SaffronLogger.log("pureData : "+pureData); if(offlineValuesToSend == null && pureData!=null) { offlineValuesToSend = pureData ; - //trace("It is the first dispatching time"); + //SaffronLogger.log("It is the first dispatching time"); //dispatchEveryWhere(Event.COMPLETE,false); event_data(); } else if(controllChange(pureData)) { //There is no need to send update - trace(">Server data is changed"); + SaffronLogger.log(">Server data is changed"); //dispatchEveryWhere(Event.COMPLETE,true); event_dataUpdated() } else { - trace(">Server data is steal same as old dispatched data"); + SaffronLogger.log(">Server data is steal same as old dispatched data"); event_dataWasUpdated() } } @@ -288,7 +330,7 @@ } else { - trace("User is listening to Error Event, So there is no need to dispatch netError"); + SaffronLogger.log("User is listening to Error Event, So there is no need to dispatch netError"); } //dispatchEveryWhere(ErrorEvent.ERROR); //dispatchEveryWhere(Event.UNLOAD); @@ -327,6 +369,14 @@ /////////////////////////New Managed events private function event_noInternet():void { + if(func_onConnectionError!=null) + { + func_onConnectionError(); + } + if(reloadIfNotConnected) + { + reLoad(4000); + } this.dispatchEvent(new Event(Event.UNLOAD)); } @@ -362,6 +412,10 @@ private function event_data():void { + if(func_onDataRetrived!=null) + { + func_onDataRetrived(); + } this.dispatchEvent(new Event(Event.COMPLETE)); } @@ -383,11 +437,11 @@ else if(sendChangeIfSentErlier) { this.dispatchEvent(new Event(Event.CHANGE)); - trace("Service Content is Updated"); + SaffronLogger.log("Service Content is Updated"); } else { - trace("I cannot dispatch my events any more : "+eventName); + SaffronLogger.log("I cannot dispatch my events any more : "+eventName); } }*/ diff --git a/webService2/WebServiceCaller2.as b/webService2/WebServiceCaller2.as index 9e19c87f..8d54d410 100644 --- a/webService2/WebServiceCaller2.as +++ b/webService2/WebServiceCaller2.as @@ -104,7 +104,7 @@ protected function loadParams(...params):void { - trace(serviceName+' - offlineDataIsOK:'+offlineDataIsOK+' _justLoadOffline:'+_justLoadOffline); + SaffronLogger.log(serviceName+' - offlineDataIsOK:'+offlineDataIsOK+' _justLoadOffline:'+_justLoadOffline); connectinError = null ; offlineDataDispatchedOnce = false ; myParam = params ; @@ -164,7 +164,7 @@ private function onConnected() { - //trace("connected"); + //SaffronLogger.log("connected"); //TODO: implement function myWebService2.eventListen.addEventListener(WebEvent2.NO_CONNECTTION,noInternet) ; myWebService2.eventListen.addEventListener(WebEvent2.RESULT,loaded) ; @@ -236,8 +236,8 @@ cashingDate = offlineDate ; } pureData = WebServiceSaver2.load(this,myParam,cashingDate) as Array ; - trace("try to load cash : "); - trace("pure data loaded : "+pureData); + SaffronLogger.log("try to load cash : "); + SaffronLogger.log("pure data loaded : "+pureData); //From now , if no null receved from services , it will replace pureData with [] array } else if(offlineDataIsOK && pureData!=null) @@ -245,11 +245,11 @@ //Versoin 1 of the pureData WebServiceSaver2.save(this,myParam,/*JSON.stringify(*/pureData/*)*/); } - trace("pureData is null : "+(pureData==null)+' >>>>> '+pureData); + SaffronLogger.log("pureData is null : "+(pureData==null)+' >>>>> '+pureData); if(pureData==null) { - trace("Close this sevice"); + SaffronLogger.log("Close this sevice"); if(dispatchConnectionErrorNow) { dispatchEveryWhere(Event.UNLOAD); @@ -262,7 +262,7 @@ } else { - trace("Try to load onlie data"); + SaffronLogger.log("Try to load onlie data"); } return false ; } @@ -280,7 +280,7 @@ } else { - trace("No error connection listener created"); + SaffronLogger.log("No error connection listener created"); dispatchEveryWhere(Event.UNLOAD) } } diff --git a/webService2/WebServiceParser2.as b/webService2/WebServiceParser2.as index 38081bc2..4039c642 100644 --- a/webService2/WebServiceParser2.as +++ b/webService2/WebServiceParser2.as @@ -10,7 +10,7 @@ package webService2 { var arrayOfthisClass:Array = [] ; - //trace(classType+" parsed to this data : "+JSON.stringify(pureObject)); + //SaffronLogger.log(classType+" parsed to this data : "+JSON.stringify(pureObject)); for(var j = 0 ; pureObject!=null && j1 || myObject.length == 0 ) { - trace("i have to re generate MyObject"); + SaffronLogger.log("i have to re generate MyObject"); myObject = [generatedObject]; } - //trace('converted to : '+JSON.stringify(myObject)); + //SaffronLogger.log('converted to : '+JSON.stringify(myObject)); } else { @@ -433,7 +433,7 @@ package webService2 //Server null in not important from now /*if(ev.result==null) { - trace("Wrong inputs sent !!! check login again"); + SaffronLogger.log("Wrong inputs sent !!! check login again"); eventListen.dispatchEvent(new WebEvent(WebEvent.NO_CONNECTTION,null,ev.token,WebEvent.error_loginProblem)); return; } @@ -453,18 +453,18 @@ package webService2 } else { - trace("Receved data is false"); + SaffronLogger.log("Receved data is false"); eventListen.dispatchEvent(new WebEvent2(WebEvent2.NO_CONNECTTION,null,ev.token,WebEvent2.error_not_done)); return ; } } else { - trace(new Error("I don't know this type : "+getQualifiedClassName(ev.result))); + SaffronLogger.log(new Error("I don't know this type : "+getQualifiedClassName(ev.result))); } } - //trace("Receved data is : "+JSON.stringify(myObject)); + //SaffronLogger.log("Receved data is : "+JSON.stringify(myObject)); eventListen.dispatchEvent(new WebEvent2(WebEvent2.RESULT,myObject,ev.token)); } @@ -485,7 +485,7 @@ package webService2 /**Send these parameters to specific operation.*/ public static function sentParamsToOperation(operationName:String,params:Array):AsyncToken { - trace(operationName+' > '+params); + SaffronLogger.log(operationName+' > '+params); var op:AbstractOperation = ws.getOperation(operationName); op.arguments = params ; return op.send(); @@ -500,7 +500,7 @@ package webService2 public static function SignIn(Username:String = 'admin' , Password:String = '1'):AsyncToken { - trace('SignIn > ',Username,Password); + SaffronLogger.log('SignIn > ',Username,Password); var userModel:Object = new Object() ; userModel.Password = Password ; @@ -512,13 +512,13 @@ package webService2 /*public static function GetUserEmployeePosition():AsyncToken { - trace('GetUserEmployeePosition > ',_ticket,username); + SaffronLogger.log('GetUserEmployeePosition > ',_ticket,username); return ws.GetUserEmployeePosition(_ticket,username) ; }*/ /*public static function SignOut() { - trace('SignOut > ',_ticket,_username); + SaffronLogger.log('SignOut > ',_ticket,_username); return ws.SignOut(_ticket,_username) ; }*/ @@ -534,7 +534,7 @@ package webService2 */ /*public static function GetEmployeePositionFolder(ypeKind:String) { - trace('GetEmployeePositionFolder > ticket : ',_ticket+' , employeePositionId : '+_employeePositionId+' , typeKind : '+typeKind); + SaffronLogger.log('GetEmployeePositionFolder > ticket : ',_ticket+' , employeePositionId : '+_employeePositionId+' , typeKind : '+typeKind); return ws.GetEmployeePositionFolder(_ticket,_employeePositionId,typeKind) ; }*/ @@ -542,7 +542,7 @@ package webService2 /**Returns sub menu list for each categorie - it can just accept Inbox and SentInbox value types public static function GetLetterReferType(inboxType:String) { - trace('GetLetterReferType > ',_ticket,_employeePositionId,inboxType); + SaffronLogger.log('GetLetterReferType > ',_ticket,_employeePositionId,inboxType); return ws.GetLetterReferType(_ticket,_employeePositionId,inboxType) ; }*/ @@ -550,19 +550,19 @@ package webService2 /**Un used, false and removed service*/ //public static function GetEmployeePositionSignature(/*employeePositionId_ignored:String,*/typeKind:String) //{ - // trace('GetEmployeePositionSignature > ',ticket,employeePositionId,typeKind); + // SaffronLogger.log('GetEmployeePositionSignature > ',ticket,employeePositionId,typeKind); // return ws.GetEmployeePositionSignature(ticket,employeePositionId,typeKind) ; //} /*public static function GetClientConfiguration() { - trace('GetClientConfiguration > '); + SaffronLogger.log('GetClientConfiguration > '); return ws.GetClientConfiguration() ; }*/ /*public static function GetInboxByFolder(employeePositionFolder,pageIndex,pageSize) { - trace('GetInboxByFolder > ',_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize); + SaffronLogger.log('GetInboxByFolder > ',_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize); // Two last parameters are the filterring values and sorting values return ws.GetInboxByFolder(_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize,null,null) ; }*/ @@ -570,20 +570,20 @@ package webService2 /*public static function GetConfidentialTypeList() { - trace('GetConfidentialTypeList > ',_ticket,_employeePositionId); + SaffronLogger.log('GetConfidentialTypeList > ',_ticket,_employeePositionId); return ws.GetConfidentialTypeList(_ticket,_employeePositionId) ; }*/ /*public static function GetLetterTypeList() { - trace('GetLetterTypeList > ',_ticket,_employeePositionId); + SaffronLogger.log('GetLetterTypeList > ',_ticket,_employeePositionId); return ws.GetLetterTypeList(_ticket,_employeePositionId) ; }*/ /**GetInboxLetterReferItemCount public static function GetInboxLetterReferItemCount(typeKind:String) { - trace("GetInboxLetterReferItemCount > "+_ticket,_employeePositionId,typeKind); + SaffronLogger.log("GetInboxLetterReferItemCount > "+_ticket,_employeePositionId,typeKind); return ws.GetInboxLetterReferItemCount(_ticket,_employeePositionId,typeKind) ; }*/ @@ -591,14 +591,14 @@ package webService2 /**GetInboxEmployeePositionFolderItemCount public static function GetInboxEmployeePositionFolderItemCount(typeKind:String) { - trace("GetInboxEmployeePositionFolderItemCount > "+_ticket,_employeePositionId,typeKind); + SaffronLogger.log("GetInboxEmployeePositionFolderItemCount > "+_ticket,_employeePositionId,typeKind); return ws.GetInboxEmployeePositionFolderItemCount(_ticket,_employeePositionId,typeKind) ; }*/ /**GetDraftInboxByFolder*/ /*public static function GetDraftInboxByFolder(employeePositionFolder,pageIndex,pageSize) { - trace('GetDraftInboxByFolder > ',_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize); + SaffronLogger.log('GetDraftInboxByFolder > ',_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize); // Two last parameters are the filterring values and sorting values return ws.GetDraftInboxByFolder(_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize,null,null) ; }*/ @@ -606,28 +606,28 @@ package webService2 /**GetSentInboxByFolder public static function GetSentInboxByFolder(employeePositionFolder,pageIndex,pageSize) { - trace('GetSentInboxByFolder > ',_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize); + SaffronLogger.log('GetSentInboxByFolder > ',_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize); // Two last parameters are the filterring values and sorting values return ws.GetSentInboxByFolder(_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize,null,null) ; }*/ /*public static function GetInboxByReferType(letterReferTypeId,pageIndex,pageSize) { - trace('GetInboxByReferType > ',_ticket,_employeePositionId,letterReferTypeId,pageIndex,pageSize); + SaffronLogger.log('GetInboxByReferType > ',_ticket,_employeePositionId,letterReferTypeId,pageIndex,pageSize); return ws.GetInboxByReferType(_ticket,_employeePositionId,letterReferTypeId,pageIndex,pageSize) ; }*/ /*public static function GetSentInboxByReferType(letterReferTypeId,pageIndex=0,pageSize=0) { - trace('GetSentInboxByReferType > ',_ticket,_employeePositionId,letterReferTypeId,pageIndex,pageSize); + SaffronLogger.log('GetSentInboxByReferType > ',_ticket,_employeePositionId,letterReferTypeId,pageIndex,pageSize); return ws.GetSentInboxByReferType(_ticket,_employeePositionId,letterReferTypeId,pageIndex,pageSize) ; }*/ /*public static function GetLetterReferSendType() { - trace('GetLetterReferSendType > ',_ticket,_employeePositionId); + SaffronLogger.log('GetLetterReferSendType > ',_ticket,_employeePositionId); return ws.GetLetterReferSendType(_ticket,_employeePositionId) ; }*/ @@ -636,9 +636,9 @@ package webService2 * if Peygiri is selected from interface , set followup to true */ /* public static function SendLetterRefer(letterCode:Vector.,receivers:Vector.,stayInInbox:Boolean,followup:Boolean = false ) { - trace('SendLetterRefer > ',_ticket,_employeePositionId,letterCode); - //trace('receiver list : '+JSON.stringify(letterReferId)); - //trace('letterReferId_vec list : '+JSON.stringify(receivers)); + SaffronLogger.log('SendLetterRefer > ',_ticket,_employeePositionId,letterCode); + //SaffronLogger.log('receiver list : '+JSON.stringify(letterReferId)); + //SaffronLogger.log('letterReferId_vec list : '+JSON.stringify(receivers)); var receivers_arr:Array = [] ; for(var i = 0 ; i ',_ticket,_employeePositionId,letterCode); + SaffronLogger.log('RequestLetterBody > ',_ticket,_employeePositionId,letterCode); return ws.RequestLetterBody(_ticket,_employeePositionId,letterCode) ; }*/ /*public static function GetReferReceiverContact(searchText:String='') { - trace('GetReferReceiverContact > ',_ticket,_employeePositionId,searchText); + SaffronLogger.log('GetReferReceiverContact > ',_ticket,_employeePositionId,searchText); return ws.GetReferReceiverContact(_ticket,_employeePositionId,searchText) ; }*/ public static function GetLetterReceiverContact(searchText:String='') { - trace('GetLetterReceiverContact > ',_ticket,_employeePositionId,searchText); + SaffronLogger.log('GetLetterReceiverContact > ',_ticket,_employeePositionId,searchText); return ws.GetLetterReceiverContact(_ticket,_employeePositionId,searchText) ; } /**Enter the pdf request id here public static function GetLetterBodyRequestStatus(requestId:String='') { - trace('GetLetterBodyRequestStatus > ',_ticket,_employeePositionId,requestId); + SaffronLogger.log('GetLetterBodyRequestStatus > ',_ticket,_employeePositionId,requestId); return ws.GetLetterBodyRequestStatus(_ticket,_employeePositionId,requestId) ; }*/ /**Get the server date for calender public static function GetServerDateTime() { - trace("GetServerDateTime"); + SaffronLogger.log("GetServerDateTime"); return ws.GetServerDateTime(); }*/ /**Return recerved titles for erja*/ public static function GetEmployeePositionReservedReferText() { - trace("GetEmployeePositionReservedReferText > "); + SaffronLogger.log("GetEmployeePositionReservedReferText > "); return ws.GetEmployeePositionReservedReferText(_ticket,_employeePositionId); } /**Return recerved titles for SentMails public static function GetReservedSubjectText() { - trace("GetReservedSubjectText >"); + SaffronLogger.log("GetReservedSubjectText >"); return ws.GetReservedSubjectText(_ticket,_employeePositionId); }*/ /**Return the list of persons, who can insert into senders as sender contact from send mail service public static function GetLetterSenderContact(searchText:String='') { - trace("GetLetterSenderContact > "+searchText); + SaffronLogger.log("GetLetterSenderContact > "+searchText); return ws.GetLetterSenderContact(_ticket,_employeePositionId,searchText); }*/ @@ -713,7 +713,7 @@ package webService2 /**Returns the list of available sighneture to use on send mail public static function GetEmployeePositionSignature(searchText:String = '') { - trace("GetEmployeePositionSignature > "+searchText); + SaffronLogger.log("GetEmployeePositionSignature > "+searchText); return ws.GetEmployeePositionSignature(_ticket,_employeePositionId,searchText); }*/ @@ -721,7 +721,7 @@ package webService2 /**Uses to load Parvande lists for send mail public static function GetLetterFolderList() { - trace("GetLetterFolderList > "); + SaffronLogger.log("GetLetterFolderList > "); return ws.GetLetterFolderList(_ticket,_employeePositionId); }*/ @@ -729,14 +729,14 @@ package webService2 /**Uses to load Andikators for sending new mail*/ public static function GetAllSecretariatToSecretariatFormat(seachText:String = '') { - trace("GetAllSecretariatToSecretariatFormat > "); + SaffronLogger.log("GetAllSecretariatToSecretariatFormat > "); return ws.GetAllSecretariatToSecretariatFormat(_ticket,_employeePositionId,seachText); } /**send letter - stayInInbox = false makes mail to remove from inbox. followUp makes Flag variable returns true on Mail public static function SendLetter(sendMailModel:SendMailModel,stayInInbox:Boolean,followup:Boolean) { - trace("SendLetter"); + SaffronLogger.log("SendLetter"); return ws.SendLetter(_ticket,_employeePositionId,sendMailModel,stayInInbox,followup); }*/ @@ -873,8 +873,8 @@ package webService2 { var pureXML:XML = putputXML[0].*[0] ; /*var ns:Namespace = putputXML.namespace('s'); - trace('ns : '+ns); - trace(" putputXML.removeNamespace(ns) : "+putputXML.removeNamespace(ns)); + SaffronLogger.log('ns : '+ns); + SaffronLogger.log(" putputXML.removeNamespace(ns) : "+putputXML.removeNamespace(ns)); putputXML.removeNamespace(ns);*/ return pureXML; } @@ -898,7 +898,7 @@ package webService2 private static function clearXML2(str:String):String { - //trace("input string : "+str); + //SaffronLogger.log("input string : "+str); var cleared:String = ''; var controll:String = '' ; var tagName:String = '' ; @@ -957,7 +957,7 @@ package webService2 } } } - //trace("cleared xml is : "+cleared); + //SaffronLogger.log("cleared xml is : "+cleared); return cleared; } @@ -977,7 +977,7 @@ package webService2 { return xml.*[i].toString() ; } - //trace('tag name : '+tagName+' item on this tag is : '+xml[xml.*[i].name()].length()+' and num child : '+xml[tagName].*.length()); + //SaffronLogger.log('tag name : '+tagName+' item on this tag is : '+xml[xml.*[i].name()].length()+' and num child : '+xml[tagName].*.length()); if(xml[tagName].length()>1 || arrayParamLins.indexOf(tagName)!=-1) { if(cashedObject[tagName]==undefined) @@ -989,7 +989,7 @@ package webService2 else { //This tag has many childrens - //trace("this is object i think : "+tagName+' because : '+xml[tagName].length()+' and the value is : '+xml.*[i]); + //SaffronLogger.log("this is object i think : "+tagName+' because : '+xml[tagName].length()+' and the value is : '+xml.*[i]); cashedObject[tagName] = xmlToObject(xml.*[i]) ; } } @@ -1005,23 +1005,23 @@ package webService2 if(base is ObjectProxy) { clearObject = (base as ObjectProxy).valueOf(); - //trace("That was an Object and it changed to : "+JSON.stringify(clearObject)); + //SaffronLogger.log("That was an Object and it changed to : "+JSON.stringify(clearObject)); } else if(base is ArrayCollection) { clearObject = (base as ArrayCollection).toArray(); - //trace('That was an Array and it is converted to default Array'); + //SaffronLogger.log('That was an Array and it is converted to default Array'); } else { clearObject = base ; - //trace("any other unkcown type"); + //SaffronLogger.log("any other unkcown type"); } for(var i in clearObject) { clearObject[i] = clearFlexObjecting(clearObject[i]); - //trace("That Object , so I have to controll all elements on it"); + //SaffronLogger.log("That Object , so I have to controll all elements on it"); } return clearObject ; diff --git a/webService3/WebServiceCaller3.as b/webService3/WebServiceCaller3.as index 1867a04a..70873c86 100644 --- a/webService3/WebServiceCaller3.as +++ b/webService3/WebServiceCaller3.as @@ -101,7 +101,7 @@ package webService3 protected function loadParams(...params):void { - trace(serviceName+' - offlineDataIsOK:'+offlineDataIsOK+' _justLoadOffline:'+_justLoadOffline); + SaffronLogger.log(serviceName+' - offlineDataIsOK:'+offlineDataIsOK+' _justLoadOffline:'+_justLoadOffline); connectinError = null ; myParam = params ; //#1 @@ -158,7 +158,7 @@ package webService3 private function onConnected() { - //trace("connected"); + //SaffronLogger.log("connected"); //TODO: implement function myWebService3.eventListen.addEventListener(WebEvent3.NO_CONNECTTION,noInternet) ; myWebService3.eventListen.addEventListener(WebEvent3.RESULT,loaded) ; @@ -227,8 +227,8 @@ package webService3 cashingDate = offlineDate ; } pureData = WebServiceSaver3.load(this,myParam,cashingDate) as Array ; - trace("try to load cash : "); - trace("pure data loaded : "+pureData); + SaffronLogger.log("try to load cash : "); + SaffronLogger.log("pure data loaded : "+pureData); //From now , if no null receved from services , it will replace pureData with [] array } else if(offlineDataIsOK && pureData!=null) @@ -236,11 +236,11 @@ package webService3 //Versoin 1 of the pureData WebServiceSaver3.save(this,myParam,/*JSON.stringify(*/pureData/*)*/); } - trace("pureData is null : "+(pureData==null)+' >>>>> '+pureData); + SaffronLogger.log("pureData is null : "+(pureData==null)+' >>>>> '+pureData); if(pureData==null) { - trace("Close this sevice"); + SaffronLogger.log("Close this sevice"); if(dispatchConnectionErrorNow) { dispatchEveryWhere(Event.UNLOAD); @@ -253,7 +253,7 @@ package webService3 } else { - trace("Try to load onlie data"); + SaffronLogger.log("Try to load onlie data"); } return false ; } @@ -270,7 +270,7 @@ package webService3 } else { - trace("No error connection listener created"); + SaffronLogger.log("No error connection listener created"); dispatchEveryWhere(Event.UNLOAD) } } diff --git a/webService3/WebServiceParser3.as b/webService3/WebServiceParser3.as index b4ae4e52..d4477d7f 100644 --- a/webService3/WebServiceParser3.as +++ b/webService3/WebServiceParser3.as @@ -10,7 +10,7 @@ package webService3 { var arrayOfthisClass:Array = [] ; - //trace(classType+" parsed to this data : "+JSON.stringify(pureObject)); + //SaffronLogger.log(classType+" parsed to this data : "+JSON.stringify(pureObject)); for(var j = 0 ; pureObject!=null && j1 || myObject.length == 0 ) { - trace("i have to re generate MyObject"); + SaffronLogger.log("i have to re generate MyObject"); myObject = [generatedObject]; } - //trace('converted to : '+JSON.stringify(myObject)); + //SaffronLogger.log('converted to : '+JSON.stringify(myObject)); } else { @@ -433,7 +433,7 @@ package webService3 //Server null in not important from now /*if(ev.result==null) { - trace("Wrong inputs sent !!! check login again"); + SaffronLogger.log("Wrong inputs sent !!! check login again"); eventListen.dispatchEvent(new WebEvent(WebEvent.NO_CONNECTTION,null,ev.token,WebEvent.error_loginProblem)); return; } @@ -453,18 +453,18 @@ package webService3 } else { - trace("Receved data is false"); + SaffronLogger.log("Receved data is false"); eventListen.dispatchEvent(new WebEvent3(WebEvent3.NO_CONNECTTION,null,ev.token,WebEvent3.error_not_done)); return ; } } else { - trace(new Error("I don't know this type : "+getQualifiedClassName(ev.result))); + SaffronLogger.log(new Error("I don't know this type : "+getQualifiedClassName(ev.result))); } } - //trace("Receved data is : "+JSON.stringify(myObject)); + //SaffronLogger.log("Receved data is : "+JSON.stringify(myObject)); eventListen.dispatchEvent(new WebEvent3(WebEvent3.RESULT,myObject,ev.token)); } @@ -485,7 +485,7 @@ package webService3 /**Send these parameters to specific operation.*/ public static function sentParamsToOperation(operationName:String,params:Array):AsyncToken { - trace(operationName+' > '+params); + SaffronLogger.log(operationName+' > '+params); var op:AbstractOperation = ws.getOperation(operationName); op.arguments = params ; return op.send(); @@ -500,7 +500,7 @@ package webService3 public static function SignIn(Username:String = 'admin' , Password:String = '1'):AsyncToken { - trace('SignIn > ',Username,Password); + SaffronLogger.log('SignIn > ',Username,Password); var userModel:Object = new Object() ; userModel.Password = Password ; @@ -512,13 +512,13 @@ package webService3 /*public static function GetUserEmployeePosition():AsyncToken { - trace('GetUserEmployeePosition > ',_ticket,username); + SaffronLogger.log('GetUserEmployeePosition > ',_ticket,username); return ws.GetUserEmployeePosition(_ticket,username) ; }*/ /*public static function SignOut() { - trace('SignOut > ',_ticket,_username); + SaffronLogger.log('SignOut > ',_ticket,_username); return ws.SignOut(_ticket,_username) ; }*/ @@ -534,7 +534,7 @@ package webService3 */ /*public static function GetEmployeePositionFolder(ypeKind:String) { - trace('GetEmployeePositionFolder > ticket : ',_ticket+' , employeePositionId : '+_employeePositionId+' , typeKind : '+typeKind); + SaffronLogger.log('GetEmployeePositionFolder > ticket : ',_ticket+' , employeePositionId : '+_employeePositionId+' , typeKind : '+typeKind); return ws.GetEmployeePositionFolder(_ticket,_employeePositionId,typeKind) ; }*/ @@ -542,7 +542,7 @@ package webService3 /**Returns sub menu list for each categorie - it can just accept Inbox and SentInbox value types public static function GetLetterReferType(inboxType:String) { - trace('GetLetterReferType > ',_ticket,_employeePositionId,inboxType); + SaffronLogger.log('GetLetterReferType > ',_ticket,_employeePositionId,inboxType); return ws.GetLetterReferType(_ticket,_employeePositionId,inboxType) ; }*/ @@ -550,19 +550,19 @@ package webService3 /**Un used, false and removed service*/ //public static function GetEmployeePositionSignature(/*employeePositionId_ignored:String,*/typeKind:String) //{ - // trace('GetEmployeePositionSignature > ',ticket,employeePositionId,typeKind); + // SaffronLogger.log('GetEmployeePositionSignature > ',ticket,employeePositionId,typeKind); // return ws.GetEmployeePositionSignature(ticket,employeePositionId,typeKind) ; //} /*public static function GetClientConfiguration() { - trace('GetClientConfiguration > '); + SaffronLogger.log('GetClientConfiguration > '); return ws.GetClientConfiguration() ; }*/ /*public static function GetInboxByFolder(employeePositionFolder,pageIndex,pageSize) { - trace('GetInboxByFolder > ',_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize); + SaffronLogger.log('GetInboxByFolder > ',_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize); // Two last parameters are the filterring values and sorting values return ws.GetInboxByFolder(_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize,null,null) ; }*/ @@ -570,20 +570,20 @@ package webService3 /*public static function GetConfidentialTypeList() { - trace('GetConfidentialTypeList > ',_ticket,_employeePositionId); + SaffronLogger.log('GetConfidentialTypeList > ',_ticket,_employeePositionId); return ws.GetConfidentialTypeList(_ticket,_employeePositionId) ; }*/ /*public static function GetLetterTypeList() { - trace('GetLetterTypeList > ',_ticket,_employeePositionId); + SaffronLogger.log('GetLetterTypeList > ',_ticket,_employeePositionId); return ws.GetLetterTypeList(_ticket,_employeePositionId) ; }*/ /**GetInboxLetterReferItemCount public static function GetInboxLetterReferItemCount(typeKind:String) { - trace("GetInboxLetterReferItemCount > "+_ticket,_employeePositionId,typeKind); + SaffronLogger.log("GetInboxLetterReferItemCount > "+_ticket,_employeePositionId,typeKind); return ws.GetInboxLetterReferItemCount(_ticket,_employeePositionId,typeKind) ; }*/ @@ -591,14 +591,14 @@ package webService3 /**GetInboxEmployeePositionFolderItemCount public static function GetInboxEmployeePositionFolderItemCount(typeKind:String) { - trace("GetInboxEmployeePositionFolderItemCount > "+_ticket,_employeePositionId,typeKind); + SaffronLogger.log("GetInboxEmployeePositionFolderItemCount > "+_ticket,_employeePositionId,typeKind); return ws.GetInboxEmployeePositionFolderItemCount(_ticket,_employeePositionId,typeKind) ; }*/ /**GetDraftInboxByFolder*/ /*public static function GetDraftInboxByFolder(employeePositionFolder,pageIndex,pageSize) { - trace('GetDraftInboxByFolder > ',_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize); + SaffronLogger.log('GetDraftInboxByFolder > ',_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize); // Two last parameters are the filterring values and sorting values return ws.GetDraftInboxByFolder(_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize,null,null) ; }*/ @@ -606,28 +606,28 @@ package webService3 /**GetSentInboxByFolder public static function GetSentInboxByFolder(employeePositionFolder,pageIndex,pageSize) { - trace('GetSentInboxByFolder > ',_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize); + SaffronLogger.log('GetSentInboxByFolder > ',_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize); // Two last parameters are the filterring values and sorting values return ws.GetSentInboxByFolder(_ticket,_employeePositionId,employeePositionFolder,pageIndex,pageSize,null,null) ; }*/ /*public static function GetInboxByReferType(letterReferTypeId,pageIndex,pageSize) { - trace('GetInboxByReferType > ',_ticket,_employeePositionId,letterReferTypeId,pageIndex,pageSize); + SaffronLogger.log('GetInboxByReferType > ',_ticket,_employeePositionId,letterReferTypeId,pageIndex,pageSize); return ws.GetInboxByReferType(_ticket,_employeePositionId,letterReferTypeId,pageIndex,pageSize) ; }*/ /*public static function GetSentInboxByReferType(letterReferTypeId,pageIndex=0,pageSize=0) { - trace('GetSentInboxByReferType > ',_ticket,_employeePositionId,letterReferTypeId,pageIndex,pageSize); + SaffronLogger.log('GetSentInboxByReferType > ',_ticket,_employeePositionId,letterReferTypeId,pageIndex,pageSize); return ws.GetSentInboxByReferType(_ticket,_employeePositionId,letterReferTypeId,pageIndex,pageSize) ; }*/ /*public static function GetLetterReferSendType() { - trace('GetLetterReferSendType > ',_ticket,_employeePositionId); + SaffronLogger.log('GetLetterReferSendType > ',_ticket,_employeePositionId); return ws.GetLetterReferSendType(_ticket,_employeePositionId) ; }*/ @@ -636,9 +636,9 @@ package webService3 * if Peygiri is selected from interface , set followup to true */ /* public static function SendLetterRefer(letterCode:Vector.,receivers:Vector.,stayInInbox:Boolean,followup:Boolean = false ) { - trace('SendLetterRefer > ',_ticket,_employeePositionId,letterCode); - //trace('receiver list : '+JSON.stringify(letterReferId)); - //trace('letterReferId_vec list : '+JSON.stringify(receivers)); + SaffronLogger.log('SendLetterRefer > ',_ticket,_employeePositionId,letterCode); + //SaffronLogger.log('receiver list : '+JSON.stringify(letterReferId)); + //SaffronLogger.log('letterReferId_vec list : '+JSON.stringify(receivers)); var receivers_arr:Array = [] ; for(var i = 0 ; i ',_ticket,_employeePositionId,letterCode); + SaffronLogger.log('RequestLetterBody > ',_ticket,_employeePositionId,letterCode); return ws.RequestLetterBody(_ticket,_employeePositionId,letterCode) ; }*/ /*public static function GetReferReceiverContact(searchText:String='') { - trace('GetReferReceiverContact > ',_ticket,_employeePositionId,searchText); + SaffronLogger.log('GetReferReceiverContact > ',_ticket,_employeePositionId,searchText); return ws.GetReferReceiverContact(_ticket,_employeePositionId,searchText) ; }*/ public static function GetLetterReceiverContact(searchText:String='') { - trace('GetLetterReceiverContact > ',_ticket,_employeePositionId,searchText); + SaffronLogger.log('GetLetterReceiverContact > ',_ticket,_employeePositionId,searchText); return ws.GetLetterReceiverContact(_ticket,_employeePositionId,searchText) ; } /**Enter the pdf request id here public static function GetLetterBodyRequestStatus(requestId:String='') { - trace('GetLetterBodyRequestStatus > ',_ticket,_employeePositionId,requestId); + SaffronLogger.log('GetLetterBodyRequestStatus > ',_ticket,_employeePositionId,requestId); return ws.GetLetterBodyRequestStatus(_ticket,_employeePositionId,requestId) ; }*/ /**Get the server date for calender public static function GetServerDateTime() { - trace("GetServerDateTime"); + SaffronLogger.log("GetServerDateTime"); return ws.GetServerDateTime(); }*/ /**Return recerved titles for erja*/ public static function GetEmployeePositionReservedReferText() { - trace("GetEmployeePositionReservedReferText > "); + SaffronLogger.log("GetEmployeePositionReservedReferText > "); return ws.GetEmployeePositionReservedReferText(_ticket,_employeePositionId); } /**Return recerved titles for SentMails public static function GetReservedSubjectText() { - trace("GetReservedSubjectText >"); + SaffronLogger.log("GetReservedSubjectText >"); return ws.GetReservedSubjectText(_ticket,_employeePositionId); }*/ /**Return the list of persons, who can insert into senders as sender contact from send mail service public static function GetLetterSenderContact(searchText:String='') { - trace("GetLetterSenderContact > "+searchText); + SaffronLogger.log("GetLetterSenderContact > "+searchText); return ws.GetLetterSenderContact(_ticket,_employeePositionId,searchText); }*/ @@ -713,7 +713,7 @@ package webService3 /**Returns the list of available sighneture to use on send mail public static function GetEmployeePositionSignature(searchText:String = '') { - trace("GetEmployeePositionSignature > "+searchText); + SaffronLogger.log("GetEmployeePositionSignature > "+searchText); return ws.GetEmployeePositionSignature(_ticket,_employeePositionId,searchText); }*/ @@ -721,7 +721,7 @@ package webService3 /**Uses to load Parvande lists for send mail public static function GetLetterFolderList() { - trace("GetLetterFolderList > "); + SaffronLogger.log("GetLetterFolderList > "); return ws.GetLetterFolderList(_ticket,_employeePositionId); }*/ @@ -729,14 +729,14 @@ package webService3 /**Uses to load Andikators for sending new mail*/ public static function GetAllSecretariatToSecretariatFormat(seachText:String = '') { - trace("GetAllSecretariatToSecretariatFormat > "); + SaffronLogger.log("GetAllSecretariatToSecretariatFormat > "); return ws.GetAllSecretariatToSecretariatFormat(_ticket,_employeePositionId,seachText); } /**send letter - stayInInbox = false makes mail to remove from inbox. followUp makes Flag variable returns true on Mail public static function SendLetter(sendMailModel:SendMailModel,stayInInbox:Boolean,followup:Boolean) { - trace("SendLetter"); + SaffronLogger.log("SendLetter"); return ws.SendLetter(_ticket,_employeePositionId,sendMailModel,stayInInbox,followup); }*/ @@ -873,8 +873,8 @@ package webService3 { var pureXML:XML = putputXML[0].*[0] ; /*var ns:Namespace = putputXML.namespace('s'); - trace('ns : '+ns); - trace(" putputXML.removeNamespace(ns) : "+putputXML.removeNamespace(ns)); + SaffronLogger.log('ns : '+ns); + SaffronLogger.log(" putputXML.removeNamespace(ns) : "+putputXML.removeNamespace(ns)); putputXML.removeNamespace(ns);*/ return pureXML; } @@ -898,7 +898,7 @@ package webService3 private static function clearXML2(str:String):String { - //trace("input string : "+str); + //SaffronLogger.log("input string : "+str); var cleared:String = ''; var controll:String = '' ; var tagName:String = '' ; @@ -957,7 +957,7 @@ package webService3 } } } - //trace("cleared xml is : "+cleared); + //SaffronLogger.log("cleared xml is : "+cleared); return cleared; } @@ -977,7 +977,7 @@ package webService3 { return xml.*[i].toString() ; } - //trace('tag name : '+tagName+' item on this tag is : '+xml[xml.*[i].name()].length()+' and num child : '+xml[tagName].*.length()); + //SaffronLogger.log('tag name : '+tagName+' item on this tag is : '+xml[xml.*[i].name()].length()+' and num child : '+xml[tagName].*.length()); if(xml[tagName].length()>1 || arrayParamLins.indexOf(tagName)!=-1) { if(cashedObject[tagName]==undefined) @@ -989,7 +989,7 @@ package webService3 else { //This tag has many childrens - //trace("this is object i think : "+tagName+' because : '+xml[tagName].length()+' and the value is : '+xml.*[i]); + //SaffronLogger.log("this is object i think : "+tagName+' because : '+xml[tagName].length()+' and the value is : '+xml.*[i]); cashedObject[tagName] = xmlToObject(xml.*[i]) ; } } @@ -1005,23 +1005,23 @@ package webService3 if(base is ObjectProxy) { clearObject = (base as ObjectProxy).valueOf(); - //trace("That was an Object and it changed to : "+JSON.stringify(clearObject)); + //SaffronLogger.log("That was an Object and it changed to : "+JSON.stringify(clearObject)); } else if(base is ArrayCollection) { clearObject = (base as ArrayCollection).toArray(); - //trace('That was an Array and it is converted to default Array'); + //SaffronLogger.log('That was an Array and it is converted to default Array'); } else { clearObject = base ; - //trace("any other unkcown type"); + //SaffronLogger.log("any other unkcown type"); } for(var i in clearObject) { clearObject[i] = clearFlexObjecting(clearObject[i]); - //trace("That Object , so I have to controll all elements on it"); + //SaffronLogger.log("That Object , so I have to controll all elements on it"); } return clearObject ; diff --git a/wrokersJob/BgWorker.as b/wrokersJob/BgWorker.as index 5647dee2..39f07901 100644 --- a/wrokersJob/BgWorker.as +++ b/wrokersJob/BgWorker.as @@ -61,7 +61,7 @@ receveidData = receiverChannel.receive() ; } var targetFile:File; - //trace("Receved data on bgWorker is : "+receveidData); + //SaffronLogger.log("Receved data on bgWorker is : "+receveidData); var callerId:uint = receveidData[1] ; var callerData:Object = receveidData[2] ; @@ -76,17 +76,17 @@ case id_base64ToByte: if(callerData is String) { - trace("*** File catched by worker : "+callerData); + SaffronLogger.log("*** File catched by worker : "+callerData); try { targetFile = new File(callerData as String); var fileStreamBase64:FileStream = new FileStream(); - trace("*** Read file "); + SaffronLogger.log("*** Read file "); fileStreamBase64.open(targetFile,FileMode.READ); var loadedString:String = fileStreamBase64.readUTFBytes(fileStreamBase64.bytesAvailable) ; var decodedBytes:ByteArray = Base64.DecodeToByte(loadedString) ; fileStreamBase64.close(); - trace("*** File loaded"); + SaffronLogger.log("*** File loaded"); try { targetFile.deleteFile(); @@ -114,17 +114,17 @@ case id_byteToBase64: if(callerData is String) { - trace("*** File catched by worker : "+callerData); + SaffronLogger.log("*** File catched by worker : "+callerData); try { targetFile = new File(callerData as String); var fileStreamByte:FileStream = new FileStream(); - trace("*** Read file "); + SaffronLogger.log("*** Read file "); fileStreamByte.open(targetFile,FileMode.READ); var loadedBytes:ByteArray = new ByteArray(); fileStreamByte.readBytes(loadedBytes,0,fileStreamByte.bytesAvailable); fileStreamByte.close(); - trace("*** File loaded"); + SaffronLogger.log("*** File loaded"); createdData.push([Base64.EncodeByte(loadedBytes)]); try { @@ -145,12 +145,12 @@ /*case id_wave2mp3: if(callerData is String) { - trace("*** File catched by worker : "+callerData); + SaffronLogger.log("*** File catched by worker : "+callerData); try { targetFile = new File(callerData as String); var fileStreamByte2:FileStream = new FileStream(); - trace("*** Read file "); + SaffronLogger.log("*** Read file "); fileStreamByte2.open(targetFile,FileMode.READ); var loadedBytes2:ByteArray = new ByteArray(); fileStreamByte2.readBytes(loadedBytes2,0,fileStreamByte2.bytesAvailable) @@ -178,7 +178,7 @@ createdData.push([targetFile.nativePath]); sendTheData(createdData); } - trace("*** File loaded"); + SaffronLogger.log("*** File loaded"); //createdData.push([fdsfds]); } @@ -212,7 +212,7 @@ var loader:Loader = new Loader(); var loaderContext:LoaderContext = new LoaderContext(true,ApplicationDomain.currentDomain); loaderContext.allowLoadBytesCodeExecution = true ; - trace("- loader created "); + SaffronLogger.log("- loader created "); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,fileLoaded); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,fileCantLoad); @@ -220,13 +220,13 @@ if(fileTarget!=null) { - trace("-The file should load to load it with loader"); + SaffronLogger.log("-The file should load to load it with loader"); try { fileLoader = new FileStream(); - trace("-fileTarget : "+fileTarget); + SaffronLogger.log("-fileTarget : "+fileTarget); targetFile = new File(fileTarget); - trace("-target file created"); + SaffronLogger.log("-target file created"); fileLoader.open(targetFile,FileMode.READ); byte = new ByteArray(); fileLoader.readBytes(byte,0,fileLoader.bytesAvailable); @@ -250,7 +250,7 @@ if(W!=0 && H!=0) { - trace("Change image size to : "+W,H); + SaffronLogger.log("Change image size to : "+W,H); bitmapData = BitmapEffects.changeSize(bitmapData,W,H,keepImageRatio,LoadInThisArea); } else if(W!=0) diff --git a/wrokersJob/WorkerFunctions.as b/wrokersJob/WorkerFunctions.as index c11b4d7d..1d5f88fc 100644 --- a/wrokersJob/WorkerFunctions.as +++ b/wrokersJob/WorkerFunctions.as @@ -89,25 +89,25 @@ if(File.applicationDirectory.resolvePath("Data/bgWork3.swf").exists) moreHints += " and remove the Data/bgWork3.swf now.\n"; if(DevicePrefrence.isItPC) - trace("Add the "+workerTarget.name+" file from Data-sample folder on Saffron to your Data folder"+moreHints) ; + SaffronLogger.log("Add the "+workerTarget.name+" file from Data-sample folder on Saffron to your Data folder"+moreHints) ; else - trace(moreHints); + SaffronLogger.log(moreHints); } - var workerBytes:ByteArray = FileManager.loadFile(workerTarget); + var workerBytes:ByteArray = FileManager.loadFile(workerTarget,false,null,false); - trace("workerTarget.exists : "+workerTarget.exists); - trace("Capabilities.isDebugger : "+Capabilities.isDebugger); + SaffronLogger.log("workerTarget.exists : "+workerTarget.exists); + SaffronLogger.log("Capabilities.isDebugger : "+Capabilities.isDebugger); if(workerTarget.exists && !Capabilities.isDebugger) { - trace("Start Creating threads"); + SaffronLogger.log("Start Creating threads"); numberOfWorkersWaitnigToStart = 0 ; workers = new Vector.(); senderChannels = new Vector.(); receiverChallens = new Vector.(); for(var i:int = 0 ; i0 && ((received[1] as Array)[0] is String) && ((received[1] as Array)[0].length<300)) { - trace('Receved Data is'+received[1]); + SaffronLogger.log('Receved Data is'+received[1]); } var callerId:uint = received[0] ; @@ -372,9 +372,9 @@ /**Send this data to its recever*/ private static function callFunction(callerId:uint,data:Object):void { - //trace(callerId+' function id receved '+((data.hasOwnProperty('length'))?"[data length is : "+data.length+"]":data)+' function ids are : '+idList); + //SaffronLogger.log(callerId+' function id receved '+((data.hasOwnProperty('length'))?"[data length is : "+data.length+"]":data)+' function ids are : '+idList); var I:int = idList.indexOf(callerId) ; - trace("Function founded : "+I); + SaffronLogger.log("Function founded : "+I); if(I!=-1) { funcList[I](data);