thewarpedcoder

showCamera User Case

Jun 14th, 2011
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.08 KB | None | 0 0
  1. // All source code open Source Copyright 2011
  2. // Code submitted by thewarpedcoder .... [email protected]
  3.  
  4. /* The purpose of the user cases is to define instances of issues / bugs
  5. * with the applications I code.
  6. *
  7. * This user case uses nameSpaces as this is how the main application works,
  8. * and also opens and closes windows as required. It does not have a window
  9. * stack.
  10. */
  11.  
  12. Ti.UI.setBackgroundColor('#ffffff');
  13.  
  14. // Define the NameSpaces
  15. var mainNS = {};
  16. mainNS.event = {};
  17. mainNS.view = {};
  18. mainNS.tool = {};
  19. mainNS.model = {};
  20.  
  21. (function()
  22. {
  23. var mobWidth = Ti.Platform.displayCaps.platformWidth;
  24. var mobHeight = Ti.Platform.displayCaps.platformHeight;
  25. var mobDiv = 1;
  26.  
  27. if (mobWidth < 480)
  28. {
  29. mobDiv = 2;
  30. }
  31. else if (mobWidth < 640)
  32. {
  33. mobDiv = 1.5;
  34. };
  35. if (Ti.Platform.osname == 'android')
  36. {
  37. androidPlatform = true;
  38. }
  39. // Global variable definitions.
  40.  
  41. var globalCurrScreen = null;
  42. var globalPreviousScreen = null;
  43. var globalBackButt = [];
  44.  
  45. var initiateFlag = true;
  46. var iPos = 0;
  47.  
  48. // Functions
  49. function addBackScreen(inFunction)
  50. {
  51. var tmpBackIn = ({INFUNC: inFunction});
  52.  
  53. globalBackButt.push(tmpBackIn);
  54. };
  55. function popGlobalBackButt()
  56. {
  57. globalBackButt.pop();
  58. };
  59. // Events ....
  60.  
  61. mainNS.event.closeTheApp = function(evt)
  62. {
  63. if (Ti.Platform.osname == 'android')
  64. {
  65. globalPreviousScreen = globalCurrScreen;
  66. mainNS.view.closeScreenWindow().open();
  67. }
  68. };
  69. mainNS.event.closeTheAppFrig = function(evt)
  70. {
  71. globalPreviousScreen.close();
  72. globalCurrScreen.close();
  73. }
  74. mainNS.event.loadBackScreenHandler = function(evt)
  75. {
  76. iPos = ((globalBackButt.length - 2) < 0) ? 0 : (globalBackButt.length - 2);
  77.  
  78. if (globalBackButt.length <= 1)
  79. {
  80. mainNS.event.closeTheApp({});
  81. }
  82. else
  83. {
  84. if (iPos >= 0)
  85. {
  86. var tmp1 = globalBackButt[iPos].INFUNC;
  87.  
  88. if (tmp1)
  89. {
  90. if(globalBackButt.length > 1)
  91. {
  92. popGlobalBackButt();
  93. };
  94. eval(tmp1 + '({BACK: ' + "true" + '});');
  95. }
  96. };
  97. };
  98. };
  99. mainNS.event.loadHomeScreen = function(evt)
  100. {
  101. globalPreviousScreen = globalCurrScreen;
  102.  
  103. if (!evt.BACK)
  104. {
  105. addBackScreen("mainNS.event.loadHomeScreen");
  106. }
  107. mainNS.view.loadHomeScreenWindow().open();
  108.  
  109. if (!initiateFlag)
  110. {
  111. globalPreviousScreen.close();
  112. initiateFlag = false;
  113. }
  114. };
  115. mainNS.event.loadCameraScreen = function(evt)
  116. {
  117. globalPreviousScreen = globalCurrScreen;
  118.  
  119. if (!evt.BACK)
  120. {
  121. addBackScreen("mainNS.event.loadCameraScreen");
  122. }
  123. mainNS.view.loadCameraScreenWindow().open();
  124.  
  125. globalPreviousScreen.close();
  126.  
  127. initiateFlag = false;
  128.  
  129. mainNS.view.showTheCamera();
  130. };
  131. // Screen Tools
  132.  
  133. mainNS.tool.appNavigationBar = function(evt)
  134. {
  135. var navigationBar = Ti.UI.createView
  136. ({
  137. bottom: 0,
  138. height: 70 / mobDiv,
  139. right: 0,
  140. backgroundColor: "#000000",
  141. opacity: 0.75
  142. });
  143. var tmpHColor = (evt.SCREEN == 'HOME') ? "#FF0000" : "#FFFFFF";
  144. var tmpCColor = (evt.SCREEN == 'CAMERA') ? "#FF0000" : "#FFFFFF";
  145. var tmpBColor = (globalBackButt.length > 1) ? "#FFFFFF" : "#444444";
  146.  
  147. var navBarHomeBtn = Ti.UI.createView
  148. ({
  149. left: 5,
  150. width: 90 / mobDiv,
  151. height: 70 / mobDiv,
  152. top: 0,
  153. backgroundColor: "#000000",
  154. borderColor: "#FFFFFF",
  155. borderWidth: 2
  156. });
  157. var navBarHomeBtnText = Ti.UI.createLabel
  158. ({
  159. width: 90 / mobDiv,
  160. text: "HOME",
  161. color: tmpHColor,
  162. textAlign: 'center',
  163. font: {fontSize: 10}
  164. });
  165. navBarHomeBtn.add(navBarHomeBtnText);
  166. navigationBar.add(navBarHomeBtn);
  167.  
  168. var navBarCameraBtn = Ti.UI.createView
  169. ({
  170. left: 100 / mobDiv,
  171. width: 90 / mobDiv,
  172. height: 70 / mobDiv,
  173. top: 0,
  174. backgroundColor: "#000000",
  175. borderColor: "#FFFFFF",
  176. borderWidth: 2
  177. });
  178. var navBarCameraBtnText = Ti.UI.createLabel
  179. ({
  180. width: 90 / mobDiv,
  181. text: "CAMERA",
  182. color: tmpCColor,
  183. textAlign: 'center',
  184. font: {fontSize: 10}
  185. });
  186. navBarCameraBtn.add(navBarCameraBtnText);
  187. navigationBar.add(navBarCameraBtn);
  188.  
  189. var navBarBackBtn = Ti.UI.createView
  190. ({
  191. left: 200 / mobDiv,
  192. width: 90 / mobDiv,
  193. height: 70 / mobDiv,
  194. top: 0,
  195. backgroundColor: "#000000",
  196. borderColor: "#FFFFFF",
  197. borderWidth: 2
  198. });
  199. var navBarBackBtnText = Ti.UI.createLabel
  200. ({
  201. width: 90 / mobDiv,
  202. text: "BACK",
  203. color: tmpBColor,
  204. textAlign: 'center',
  205. font: {fontSize: 10}
  206. });
  207. navBarBackBtn.add(navBarBackBtnText);
  208. navigationBar.add(navBarBackBtn);
  209.  
  210. var navBarCloseBtn = Ti.UI.createView
  211. ({
  212. right: 10 / mobDiv,
  213. width: 90 / mobDiv,
  214. height: 70 / mobDiv,
  215. top: 0,
  216. backgroundColor: "#000000",
  217. borderColor: "#FFFFFF",
  218. borderWidth: 2
  219. });
  220. var navBarCloseBtnText = Ti.UI.createLabel
  221. ({
  222. width: 90 / mobDiv,
  223. text: "CLOSE",
  224. color: "#FFFFFF",
  225. textAlign: 'center',
  226. font: {fontSize: 10}
  227. });
  228. navBarCloseBtn.add(navBarCloseBtnText);
  229. navigationBar.add(navBarCloseBtn);
  230.  
  231. if (evt.SCREEN != 'HOME') {navBarHomeBtn.addEventListener('click', function() {mainNS.event.loadHomeScreen({});} ); };
  232. if (evt.SCREEN != 'CAMERA') {navBarCameraBtn.addEventListener('click', function() {mainNS.event.loadCameraScreen({});} ); };
  233. if (globalBackButt.length > 1) {navBarBackBtn.addEventListener('click', function() {mainNS.event.loadBackScreenHandler({});} ); };
  234.  
  235. navBarCloseBtn.addEventListener('click', function() {mainNS.event.closeTheApp({})} );
  236.  
  237. return navigationBar;
  238. };
  239. // Screens ....
  240.  
  241. mainNS.view.loadHomeScreenWindow = function()
  242. {
  243. var mainMenuWin = Ti.UI.createWindow
  244. ({
  245. navBarHidden: true,
  246. backgroundColor: "#FFFFFF"
  247. });
  248. var mainMenuWinLabel = Ti.UI.createLabel
  249. ({
  250. width: 200,
  251. text: "HOME SCREEN",
  252. color: "#000000",
  253. textAlign: 'center',
  254. font: {fontSize: 30}
  255. });
  256. mainMenuWin.add(mainMenuWinLabel);
  257.  
  258. globalCurrScreen = mainMenuWin;
  259.  
  260. var navBarData = {SCREEN: "HOME"};
  261.  
  262. var navBar = mainNS.tool.appNavigationBar(navBarData);
  263.  
  264. mainMenuWin.add(navBar);
  265.  
  266. if (Ti.Platform.osname == 'android')
  267. {
  268. mainMenuWin.addEventListener('android:back', function() {mainNS.event.loadBackScreenHandler({});} );
  269. };
  270. return mainMenuWin;
  271. };
  272. mainNS.view.loadCameraScreenWindow = function()
  273. {
  274. var cameraScreenWin = Ti.UI.createWindow
  275. ({
  276. navBarHidden: true,
  277. backgroundColor: "#FFFFFF"
  278. });
  279. globalCurrScreen = cameraScreenWin;
  280.  
  281. if (Ti.Platform.osname == 'android')
  282. {
  283. cameraScreenWin.addEventListener('android:back', function() {mainNS.event.loadBackScreenHandler({});} );
  284. };
  285. cameraScreenWin.addEventListener('close', function() { Ti.Media.hideCamera(); });
  286.  
  287. return cameraScreenWin;
  288. };
  289. mainNS.view.showTheCamera = function()
  290. {
  291. var displayVoucherOverlayView = Ti.UI.createView
  292. ({
  293. top: 0,
  294. bottom: 0,
  295. left: 0,
  296. right: 0,
  297. opacity: 0.75
  298. });
  299. var navBarData = {SCREEN: "CAMERA"};
  300.  
  301. var navBar = mainNS.tool.appNavigationBar(navBarData);
  302.  
  303. displayVoucherOverlayView.add(navBar);
  304.  
  305. var cameraTransform = Ti.UI.create2DMatrix();
  306. cameraTransform = cameraTransform.scale(2);
  307.  
  308. Ti.Media.showCamera
  309. ({
  310. success: function(event) {},
  311. cancel: function() {},
  312. error: function(error)
  313. {
  314. if (error.code == Ti.Media.NO_CAMERA)
  315. {
  316. alert("NO CAMERA");
  317. }
  318. else
  319. {
  320. alert("CAMERA ERROR");
  321. }
  322. },
  323. mediaTypes: [Ti.Media.MEDIA_TYPE_VIDEO,Ti.Media.MEDIA_TYPE_PHOTO],
  324. showControls: false,
  325. autohide: false,
  326. transform: cameraTransform,
  327. overlay: displayVoucherOverlayView
  328. });
  329. };
  330. mainNS.view.closeScreenWindow = function()
  331. {
  332. var closeScreenWin = Ti.UI.createWindow
  333. ({
  334. navBarHidden: true,
  335. exitOnClose: true
  336. });
  337. globalCurrScreen = closeScreenWin;
  338.  
  339. closeScreenWin.addEventListener('open', function() {mainNS.event.closeTheAppFrig({});} );
  340.  
  341. return closeScreenWin;
  342. };
  343. // Initial Launch
  344. mainNS.event.loadHomeScreen({});
  345.  
  346. })();
Advertisement
Add Comment
Please, Sign In to add comment