Mariuxtheone / Teleport

Data Sync & Messaging Library for Android Wear
370 stars 47 forks source link

Teleport - Data Sync & Messaging Library for Android Wear

Screen

Teleport is a library to easily setup and manage Data Syncronization and Messaging on Android Wearables.

The library is thought for Android Studio.

Quick Overview

You can see Teleport as an Android Wear "plugin" you can add to your Activities and Services.

Teleport provides you commodity classes to easily establish a communication between a mobile handheld device and an Android Wear device.

Both these classes incapsulates all the GoogleApiClient setup required to establish a connection between Mobile and Wear.

TeleportClient and TeleportService also provide you two AsyncTask you can extend to easily perform operations with the synced DataItems and received Messages:

You just need to extend these tasks inside your Activity/Service and you're good to go!

To Sync Data and send Messages, you can use commodity methods like

Summary

Can I have an example of how easy is Teleport to use?

There you go :-)

Here's a Mobile and a Wear Activity already configured to Sync Data.

MobileActivity.java


    public class MobileActivity extends Activity {

    TeleportClient mTeleportClient;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_mobile);

             mTeleportClient = new TeleportClient(this);         
         }

        @Override
        protected void onStart() {
            super.onStart();
            mTeleportClient.connect();
            }

        @Override
        protected void onStop() {
            super.onStop();
            mTeleportClient.disconnect();
         }

        public void syncDataItem(View v) {                   
           //Let's sync a String!
           mTeleportClient.syncString("hello", "Hello, World!");   
        }

    }

WearActivity.java


    public class WearActivity extends Activity {

        TeleportClient mTeleportClient;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_wear);

             mTeleportClient = new TeleportClient(this);

             mTeleportClient.setOnSyncDataItemTask(new ShowToastHelloWorldTask());

        }

        @Override
        protected void onStart() {
            super.onStart();
            mTeleportClient.connect();
        }

        @Override
        protected void onStop() {
            super.onStop();
            mTeleportClient.disconnect();

        }

        public class ShowToastHelloWorldTask extends TeleportClient.OnSyncDataItemTask {

                @Override
                protected void onPostExecute(DataMap dataMap) {

                    String hello = dataMap.getString("hello");   

                    Toast.makeText(getApplicationContext(),hello,Toast.LENGTH_SHORT).show();
                }
        }

    }

Jump to Library Set Up !!!

Follow me on

Author: Mario Viviani <img alt="Follow me on Google+" src="https://github.com/Mariuxtheone/Teleport/raw/master/doc/images/googleplus64.png" /> <img alt="Follow me on LinkedIn" src="https://github.com/Mariuxtheone/Teleport/raw/master/doc/images/linkedin64.png" />

Thanks to:

Damien Cavaillès - https://github.com/thedamfr

License

Teleport is released under the Apache License 2.0

Copyright 2014-2015 Mario Viviani

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.