Skip to content

Commit

Permalink
Initial Commit for Reload
Browse files Browse the repository at this point in the history
  • Loading branch information
Ali Sarrafi committed Apr 11, 2012
0 parents commit 04ed114
Show file tree
Hide file tree
Showing 297 changed files with 194,110 additions and 0 deletions.
20 changes: 20 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

.DS_Store

ReloadLauncher/Windows/ReloadLauncher.vcxproj.user
ReloadLauncher/Windows/Debug
ReloadLauncher/Windows/ipch
ReloadLauncher/Windows/ReloadLauncher.sdf
ReloadLauncher/Windows/ReloadLauncher.suo
ReloadLauncher/Windows/ReloadLauncher.vcxproj.filters
ReloadLauncher/Windows/ReloadLauncher.opensdf
ReloadLauncher/Windows/ReloadLauncher.sdf
ReloadLauncher/Windows/ReloadLauncher.aps

ReloadClient/Output
ReloadClient/Clients
ReloadClient/ReleasePackages

ReloadLauncher/Mac/Reload.app

Build
661 changes: 661 additions & 0 deletions Licenses/agpl-3.0.txt

Large diffs are not rendered by default.

674 changes: 674 additions & 0 deletions Licenses/gpl.txt

Large diffs are not rendered by default.

72 changes: 72 additions & 0 deletions ReadMe.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
MoSync Reload

Copyright (C) 2012 MoSync AB

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.



1. Introduction

MoSync Reload is a tool for rapid development of mobile applications in
HTML5 and JavaScript for iOS, Android and Windows Phone.

You can access native features such as camera, SMS, file system and sensors
and create interfaces using real, native UI controls.

Reload lets you edit code on your PC, Mac or Linux machine and then instantly
see the result of your changes on any number of devices or emulators. It’s just
like pressing “reload” in a browser, but for native mobile apps!


2. Installation
-----------------------------------------------------------------------
You need a working installation of Node.js 0.6 or newer to use Reload!
-----------------------------------------------------------------------

2.1. Installation on Mac
On Mac just copy the App to your Applications folder. After running you can
find more documentation inside the application’s interface.

2.2. Installation on Windows
No Installation is required on Windows, just run the ReloadLauncher.exe. The
Launcher will start a command line shell with the server log and your default
web browser with the UI. You can find more documentation inside the application.

2.3 Installation on Linux
There is no installation for Linux. After extracting the package run the "reload"
script inside a terminal, and then open "http://localhost:8282" on your browser.

3. Build From Source
In order to build Reload you need a working installation of MoSync. Currently, the build process
only works on Mac OS X 10.6 and above.

To build Reload packages type:
>ruby build.rb

in your command line.

4. Documentation and License
Reload Server is distributed under the AGPL license.
Reload Client XCode and Visual Studio projects are distributed under the GPL license.

- please read the license files inside the Licenses folder for more information.

-----------------------------------------------------------------------
If you need more information:
* Visit our Website: http://www.mosync.com or
* Send us and Email: [email protected] or
* Join our IRC channel: #MoSync on Freenode.net or
* Talk to us on Twitter: @MoSync
-----------------------------------------------------------------------
19 changes: 19 additions & 0 deletions ReloadAppTemplates/MoSync_Reload_BETA_2_Linux/reload
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@

# Copyright (C) 2012 MoSync AB

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.

# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

#!/bin/bash
cd server/
node ReloadServer.js
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
11 changes: 11 additions & 0 deletions ReloadClient/.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<buildSequence>
<buildStep type="bundle">
<bundle foe="true" inFile="%current-project%/LocalFiles" name="HTML5/JavaScript bundling" outFile="%current-project%/Resources/LocalFiles.bin"/>
</buildStep>
<buildStep type="resource"/>
<buildStep type="compile"/>
<buildStep type="link"/>
<buildStep type="pack"/>
<buildStep type="copy.build.results"/>
</buildSequence>
17 changes: 17 additions & 0 deletions ReloadClient/.cproject
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?>

<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="org.eclipse.cdt.core.default.config.1189589108">
<storageModule buildSystemId="org.eclipse.cdt.core.defaultConfigDataProvider" id="org.eclipse.cdt.core.default.config.1189589108" moduleId="org.eclipse.cdt.core.settings" name="Configuration">
<externalSettings/>
<extensions/>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.pathentry">
<pathentry kind="con" path="com.mobilesorcery.mosync.includepaths"/>
</storageModule>
</cproject>
33 changes: 33 additions & 0 deletions ReloadClient/.mosyncproject
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<project supports-build-configs="true" version="1.4">
<build.cfg id="Debug" types="Debug"/>
<build.cfg id="Release" types="Release"/>
<criteria>
<filter type="com.mobilesorcery.sdk.capabilities.devices.elementfactory">
<capabilities optional="" required="HTML5"/>
</filter>
</criteria>
<properties>
<property key="build.prefs:additional.include.paths/Release" value=""/>
<property key="build.prefs:additional.libraries" value="MAUtil.lib, NativeUI.lib, MAFS.lib, Wormhole.lib, yajl.lib, Notification.lib"/>
<property key="build.prefs:additional.libraries/Debug" value="MAUtilD.lib, NativeUID.lib, MAFSD.lib, WormholeD.lib, yajlD.lib, NotificationD.lib"/>
<property key="build.prefs:additional.library.paths/Release" value=""/>
<property key="build.prefs:app.permissions" value="Accelerometer Bluetooth Calendar Camera Compass Contacts File\ Storage Gyroscope Internet\ Access Location Location/Coarse Location/Fine Orientation Power\ Management Proximity Push\ Notifications SMS Vibration"/>
<property key="build.prefs:extra.link.sw/Release" value=""/>
<property key="build.prefs:extra.res.sw/Release" value=""/>
<property key="build.prefs:gcc.warnings/Release" value="0"/>
<property key="build.prefs:memory.data/Debug" value="4096"/>
<property key="build.prefs:memory.data/Release" value="8192"/>
<property key="build.prefs:memory.heap/Debug" value="3072"/>
<property key="build.prefs:memory.heap/Release" value="7000"/>
<property key="build.prefs:memory.stack/Debug" value="512"/>
<property key="build.prefs:memory.stack/Release" value="512"/>
<property key="build.prefs:project.type" value=""/>
<property key="com.mobilesorcery.sdk.html5.support" value="true"/>
<property key="dependency.strategy" value="0"/>
<property key="excludes/Release" value=""/>
<property key="profile.mgr.type" value="0"/>
<property key="template.id" value="project.html5.hybrid"/>
<property key="winmobilecs:guid" value="3e0fa7b0-3ec6-102f-8003-a9d7f020192f"/>
</properties>
</project>
8 changes: 8 additions & 0 deletions ReloadClient/.mosyncproject.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="1.4">
<active.build.cfg active="Release"/>
<target-profile device="iPhone" vendor="iOS"/>
<properties>
<property key="privileged.access.token" value="1A848B1FD2D4804D630642E958C84666"/>
</properties>
</project>
36 changes: 36 additions & 0 deletions ReloadClient/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>ReloadClient</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.mobilesorcery.sdk.core.builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.mobilesorcery.sdk.core.nature</nature>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
<filteredResources>
<filter>
<id>0</id>
<name></name>
<type>6</type>
<matcher>
<id>org.eclipse.ui.ide.multiFilter</id>
<arguments>1.0-name-matches-false-true-.*rebuild.build.cpp</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>
3 changes: 3 additions & 0 deletions ReloadClient/.settings/org.eclipse.core.resources.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#Tue Feb 07 18:41:23 CET 2012
eclipse.preferences.version=1
encoding/<project>=UTF-8
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
org.eclipse.wst.jsdt.launching.baseBrowserLibrary
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Window
Binary file added ReloadClient/Icon-72.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ReloadClient/Icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ReloadClient/[email protected]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
160 changes: 160 additions & 0 deletions ReloadClient/LoadingScreen.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
/*
Copyright (C) 2011 MoSync AB
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License,
version 2, as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA.
*/

/**
* LoadingScreen.cpp
*
* Created on: Feb 27, 2012
* Author: Iraklis Rossis
*/

#include "LoadingScreen.h"

using namespace MAUtil; // Class Moblet
using namespace NativeUI; // WebView widget.

LoadingScreen::LoadingScreen(ReloadClient *client)
{
mReloadClient = client;
}

void LoadingScreen::initializeScreen(MAUtil::String &os)
{
MAExtent ex = maGetScrSize();
int screenWidth = EXTENT_X(ex);
int screenHeight = EXTENT_Y(ex);

mSplashScreen = new Screen();
mSplashScreen->setBackgroundColor(40,40,40);

//Layout that holds the screen elements
RelativeLayout* relativeLayout = new RelativeLayout();
relativeLayout->setSize(screenWidth, screenHeight);

//The huge Reload "Circle"
Image* logo = new Image();
logo->setImage(SPLASH_IMAGE);
logo->setSize(screenWidth,screenWidth);
logo->setScaleMode(IMAGE_SCALE_PRESERVE_ASPECT);

//Indicator placed on top of the reload circle
mIndicator = new ActivityIndicator();
mIndicator->show();

//Progress bar for the download
mProgressBar = new ProgressBar();
mProgressBar->setWidth((int)(screenWidth * 0.75));
mProgressBar->setMaximumValue(100);

//Padding between the progress bar and the cancel button
HorizontalLayout *paddingLayout = new HorizontalLayout();
paddingLayout->setHeight(screenHeight / 36);

//the cancel button stops the download and returns the user
//to the login screen
if(os == "Android")
{
mCancelDownloadButton = new Button();
((Button*)mCancelDownloadButton)->addButtonListener(this);
}
else
{
mCancelDownloadButton = new ImageButton();
((ImageButton*)mCancelDownloadButton)->addButtonListener(this);
((ImageButton*)mCancelDownloadButton)->setBackgroundImage(RELOAD_BG);
mCancelDownloadButton->setFontColor(0x000000);
}

mCancelDownloadButton->setText("Cancel");
mCancelDownloadButton->setTextHorizontalAlignment(MAW_ALIGNMENT_CENTER);
mCancelDownloadButton->setTextVerticalAlignment(MAW_ALIGNMENT_CENTER);
mCancelDownloadButton->setWidth((int)(screenWidth * 0.75));
mCancelDownloadButton->setHeight((int)(screenHeight * 0.1));

//Spacing between the cancel button and the bottom of the screen
HorizontalLayout *paddingLayout2 = new HorizontalLayout();
paddingLayout2->setHeight(screenHeight / 15);

VerticalLayout* logolayout = new VerticalLayout();
logolayout->setSize(screenWidth, screenHeight);
logolayout->setChildHorizontalAlignment(MAW_ALIGNMENT_CENTER);
logolayout->setChildVerticalAlignment(MAW_ALIGNMENT_CENTER);
logolayout->addChild(logo);

VerticalLayout* activitylayout = new VerticalLayout();
activitylayout->setSize(screenWidth, screenHeight);
activitylayout->setChildHorizontalAlignment(MAW_ALIGNMENT_CENTER);
activitylayout->setChildVerticalAlignment(MAW_ALIGNMENT_CENTER);
activitylayout->addChild(mIndicator);

VerticalLayout* progresslayout = new VerticalLayout();
progresslayout->setSize(screenWidth, screenHeight);
progresslayout->setChildHorizontalAlignment(MAW_ALIGNMENT_CENTER);
progresslayout->setChildVerticalAlignment(MAW_ALIGNMENT_BOTTOM);
progresslayout->addChild(mProgressBar);
progresslayout->addChild(paddingLayout);
progresslayout->addChild(mCancelDownloadButton);
progresslayout->addChild(paddingLayout2);

relativeLayout->addChild(logolayout);
relativeLayout->addChild(activitylayout);
relativeLayout->addChild(progresslayout);
mSplashScreen->setMainWidget(relativeLayout);
}

/**
* Called by the system when the user clicks a button
* @param button The button that was clicked
*/
void LoadingScreen::buttonClicked(Widget *button)
{
if(button == mCancelDownloadButton)
{
//Cancel the download and go back to the login screen
mReloadClient->cancelDownload();
mIndicator->hide();
}
}

/**
* This method is called whenever some data was downloaded
* @param downloader The downloader that sent the event
* @param downloadedBytes The bytes that have been downloaded up to now
* @param totalBytes The total bytes to be downloaded
*/
void LoadingScreen::notifyProgress(Downloader *downloader, int downloadedBytes, int totalBytes)
{
mProgressBar->setProgress((int)(((float)downloadedBytes / totalBytes) * 100));
}

/**
* Called when the download is complete
* @param downloader The downloader who finished it's operation
* @param data A handle to the data that was downloaded
*/
void LoadingScreen::finishedDownloading(Downloader* downloader, MAHandle data)
{
mIndicator->hide(); //Needed for android to animate correctly
}

void LoadingScreen::show()
{
mSplashScreen->show();
mIndicator->show(); //Needed for android indicator to animate
mProgressBar->setProgress(0);
}
Loading

0 comments on commit 04ed114

Please sign in to comment.