2017年1月16日 星期一

LiveCode Android External: Integrate Facebook and Google Login

I've used LiveCode for more than five years. As a Android developer using LIveCode, it always feel like there is less support for Android than iOS. Thanks to Monte, we have lots of iOS externals to use in LiveCode Indy. It will be great if we have all these externals in Android version. I have some experience about building Android external. So I decided to do it myself. I think it will definitely enhance people's intention to use LiveCode. Hope someday my external will be integrated into LiveCode Indy just like Monte did.

Start with Facebook and Google login function.

[Facebook]
First we need to initialize Facebook SDK.
on mouseUp                                           
     put haoFacebookInit("{APP_ID}")
end mouseUp                                        


















Then open Facebook login view and pass the permissions you wish.
put haoFacebookLogin("email"&cr&"public_profile") into tResult





















After successfully login we can get the access token. With access token, we are able to use the Graph API. Graph API can do a lot of things such as getting user name, id, photos even post photos almost anything.

put haoFacebookGetAccessToken() into tToken
GET URL ("https://graph.facebook.com/me?access_token="&tToken)

answer the urlResponse






















[Google]
It's much easier to login to Google using LiveCode External. Just one command.























put haoGoogleAuthLogin() into tResult 

This command open Google login view.






















When successfully login. Account information will return to LiveCode. 























These two simple login function take me several days. It's a good start and I will try to build more and make them more stable.

2015年7月23日 星期四

Use LiveCode to Create Android Launcher

Few weeks ago, people ask me if LiveCode can create an android launcher. Today, I've make a quick demo. Surprisingly it's very easy to accomplish with my new external called "HaoUtil1". This external include some useful function in android environment. Such as, log message to Logcat, toast message on screen. One of these functions is to get all installed application's information(name, icon, package name etc.). So, here's the screenshot.


With this function, I can display all the apps. Here I pick only the first 9 apps.

By clicking these icons. It should open corresponding app. Here's comes another external function includes in HaoUtil1. "haoLaunchApp" can provide you the ability to open other apps that installed in your device, inside your LiveCode stacks.

To prove this is a real launcher app, click the home button on mobile phone.

You can see the two selection. One is HTC device default home(launcher) app the other is my LiveCode launcher.

This is a very rough demo. Still have lot of things to do. But it did verify that LiveCode really can do about just anything. So keep going LiveCoders :)

2015年5月8日 星期五

HaoPlayer: LiveCode Android External, Support background audio playing

haoPlayer   

Price: $9.99 USD, include all updates.

Chiu, Chih Hao (HedgeHao) @ 2015/05/08

>>2015/05/08
    *Initial Version


LiveCode Version : 7.0.4

  HaoPlayer is an LiveCode External for Android devices. It is a audio player object for Livecode on android envionment. The difference between haoPlayer and original LiveCode Player is, haoPlayer can play in background! You can play audio in background while you are browsing websites or texting messages or doing other things.

Installation
1.  Copy "revsaveasandroidstandalone.livecodescript" in haoPlayer-1.0.0.zip to 
[LiveCode install path]/Tools/Toolset/libraries/ . (Backup the original "revsaveasandroidstandalone.livecodescript" file in case something went wrong)


2. Add "haoplayer.lcext" and "AndroidManifest.xml" to the copy files of your stack


Documentation & Demo


1. haoPlayerCreate()Create and initialize haoPlayer.



2. haoPlayerAddTrack(AudioFilePath)Add audio file to play list.
3. haoPlayerPlay()
Start playback



4. haoPlayerPause()

Pause playback.



5. haoPlayerResume()
Resume playback



6. haoPlayerNext()
Start to play the next track on play list.



7. haoPlayerPrev()
Play previous track on play list.


8. haoPlayerJumpTo(trackNum)

Play specific track on the play list. Start from 0.



9. haoPlayerGetCurrentTrack()
Retrun the track number which is playing now.



10. haoPlayerGetCurrentTime()
Return the current position of the playing track.

11. haoPlayerSetCurrentTime()Set the current position of the playing track.

12. haoPlayerGetDuration()Return the duration of the current track which is now playing.13. haoPlayerSetVolume(volume)
Set the volume of playback. Volume is in range 0.0 to 1.0

14. haoPlayerSetPlayMode(mode)
There are four mode can be set.

0: Normal Mode, play from the begining track to the last one. No repeat and no loop.
1: Repeat Mode, play from the beining track to the last one and back to the first one.
2: Loop Mode, looping current track.
3: Shuffle Mode, random pick one song to play.

15. haoPlayeGetCurrentTrack()
Return the currentTrack number. Start from 0.


16. haoPlayerClearTrackList
Clear all track on play list and stop playback.

17. haoPlayerDestory()
Remove haoPlayer from application




2015年5月4日 星期一

HedgeHao LiveCode Android External Store -- HaoDropbox4LC for $7.99 USD (2015/05/04 update)




HaoDropbox4LC_Doc


HaoDropbox4LC is an LiveCode Android External for user to create, download, modify and delete folders and files on user's dropbox account. HaoDropbox4LC includes Dropbox Android SDK.
Price : $7.99 USD / each
The payment is processed via PayPal. Please
send an email to me (hedgehao@gmail.com) if you want to place an order.
You will receive an invoice. After the payment is finished, you will
get your external files through your email.



Document    

Chiu, Chih Hao (HedgeHao) @ 2015/05/04

Installation

LiveCode Version : 7.0.4

1. First you need to replace LiveCode built classes for android
with the "Classses" file in haoDropbox4LC-1.0.0.zip. I made some
changes in LiveCode Classes to fit Dropbox's API. Copy "Classes" in
haoDropbox4LC-1.0.0 to [LiveCode install path]/Tools/Runtime/Android.
(Backup the original Classes file in case something went wrong)



2.  Copy "revsaveasandroidstandalone.livecodescript" in
haoDropbox4LC-1.0.0.zip to
[LiveCode install
path]/Tools/Toolset/libraries/ .
(Backup the original "revsaveasandroidstandalone.livecodescript"
file in case something went wrong)


3. Add "haoDropbox4LC.lcext" and "AndroidManifest.xml" to the copy
files of your stack



4. Make sure "Internet" is check in Android permissions setting



5. Set up Dropbox Develop App on
https://www.dropbox.com/developers/apps. Get your API_KEY and API_SCRET




Documentation
function haoDropboxInit(apiKey, apiScret)
Set up your develop account key and scret which get from Dropbox. Need to be call before any other functions.

return : "OK" if success




function haoDropboxLink()
Link to user's Dropbox account.

return : "OK" if success


function haoDropboxUnLink()

Unlink from Dropbox account.


return : "OK" if success

function haoDropboxIsLinked()


Check if application is linked to Dropbox.


return : "true" if the current session is linked to a account, esle retrun "false"


function haoUpload(dropboxPath, localFilePath)

Upload a file to Dropbox
*dropboxPath : the full dropbox path where to
upload file.


*localFilePath : path of the file you want to upload.

return : "OK" if success

function haoDropboxCreateFolder(dropboxPath)

Create a Dropbox folder.

*dropboxPath : the Dropbox path to the new folder.

return : "OK" if success

function haoDropboxListDirectory(dropboxPath)

list all files and subfolders in Dropbox folder.

*dropboxPath : the Dropbox path to the directory for which to list
return : the metadata of all contents in folder (JSON format).

function haoDropboxDownload(dropboxFilePath, localFilePath)

Download a file from Dropbox

*dropboxFilePath : the dropbox path to the file.

*localFilePath : file path where you want to save this file.

return : "OK" if success
, "FAIL" if file does not exists or connection lost.

function haoDropboxMove(fromPath, toPath)


Moves a file or folder (and all of the folder's contents) from one path
to another.
*fromPath : the dropbox path to move from.

*toPath : the dropbox path to move to.


return : "OK" if success, "FAIL" if file does not exists or connection lost.


function haoDropboxCopy(fromPath, toPath)
Copy a file or folder (and all of the folder's contents) from one path
to another.
*fromPath : the dropbox path to copy from.

*toPath : the dropbox path to copy to.


return : "OK" if success, "FAIL" if file does not exists or connection lost.


function haoDropboxDelete(dropboxFilePath)

Delete a file or folder (and all of the folder's contents).


*dropboxFilePath : the dropbox path to delete.
return : "OK" if success, "FAIL" if file does not exists or connection lost.




function haoDropboxShare(dropboxFilePath)

Get a url for sharing the specified directory or file.

*dropboxFilePath : the dropbox path to share.
return : the url of sharing file or directory.





2015年1月26日 星期一

LiveCode Language Package -- Multi-Language IDE Interface

LiveCode 7 release last year. With fully support Unicode, we can write for example, Chinese in LC script. But that's not enough! Since LiveCode China and LiveCode Taiwan start promoting LiveCode in Asia last year. Many LC beginners ask if we have Chinese interface. With a little hard work. I've made it.


Here is the menu bar with Traditional Chinese.

File menu with Traditional Chinese.

Help menu with Traditional Chinese.

Chinese menu while right click objects, cards and stacks.

Chinese menu on the Project Browser.

I also wrote an installation program to modify the display language on LC IDE. Can run on MacOS and Windows. You can download it at https://www.dropbox.com/s/1ckvkagyvkglniz/LCLanguagePack.zip?dl=0. Follow the instructions below to install on your LC IDE. (Only support Traditional Chinese and Simplified Chinese now.)





Steps:
(This is a beta version. Many bugs might happen...)

0. (**IMPORTANT) Install a new version of LiveCode (7.0 and later) in case break the original one.

1. Unzip LCLanguagePack.zip. Run "LCLangSettings" (Mac) or "LCLangSettings.exe" (Windows).

2. After open program, select the language you want.  Support Traditional Chinese (zh_TW) and Simplified Chinese (zh_CN) now.

3. Click the second button below. Choice where LiveCode install. e.g., /Applications/LiveCode Community 7.0.1.app (Mac) or C:\Program Files (x86)\RunRev\LiveCode Community 7.0.1\  (Windows)

4. Open LiveCode check if it works!



If you want to add your own language. Check the language settings which write in JSON format. You can see the settings file at https://github.com/HedgeHao/LCLangaugePack/blob/master/language.lcconfig. If you add your language text please share the settings file to the community.


HedgeHao (Chiu Chih-Hao)@LiveCode Taiwan
2015/01/26







2014年10月11日 星期六

LiveCode External for bluetooth -- Controlling Arduino using LiveCode

I made a bluetooth external for livecode. Bluetooth are a good way to control Arduino, Raspberry Pi or other embedded system. I use this external to make a app to turn on and off the led connected on Arduino UNO. Here are the photos and demo video(here).





2014年8月4日 星期一

LCGMap -- Google Map on LiveCode

Google Map is a well know online map services and is widely used in mobile apps. I made this livecode program as module to plug into any other livecode programs. Google has release many functions' api. I just implement some of them. As you may see in this article and the demo videos.

The video link is here : http://youtu.be/PHU9I-CiRks

First thing to is to display a map with central point sets.
I set the center of this map to "台北" which is the Traditional Chinese for "Taipei". It's the capital city of Taiwan. Also set the zoom to 12. In my LCGMap, you can use either latitude and longitude or the name of that place to set the locations.

Next, I can add some markers to the position where I want. As you can see two maker field. One use latitude and longitude the other use English name of the location. Here's the result.

We can use the direction service of Google Map, too. Just set the start location and the end location. When I click "Direct" the route will calculate and draw on the map.

The second card show the Google Places service. It can find the restaurants, parks, banks and other types of places you are looking for. It can also set the radius for a fix location to find out the places in this area. In this demo I set the radius to 5000 meters as default. First I set the central location to Taipei city and search for the banks in 5000 meter radius.
When clicked the marker. It will show the name of this place.

Then I change the type to restaurant and search again. You can see the restaurants in this area.

I've accomplish just a few functions in Google Map. But these are some functions I often use. Maybe more when I have time:)