BBM Channel integrated

bbm_color

BBM Channels are a great way to communicate with your community. BBM Channels are free and easy to create – so why not integrating them into TimeTracker. You can get access to TimeTracker Channel the normal BBM – way and look for Channels you’re interested in.

Integrating BBM Channel for TimeTracker

Even better it’s directly integrated into the App. Simply swipe down from top to get the Application Menu:

Bbmc1

Tapping on BBM Channel the very first time you must confirm to subscribe the Channel.

Bbmc2

Now you have access directly from inside TimeTracker:

Bbmc3

Get the newest informations about TimeTracker. Feel free to use the Comments to ask questions.

Integration of BBM Channel using Cascades Invokation Framework is really easy stuff. This code explains it all:

ActionItem {
    id: bbmChannelAction
    title: "BBM Channel"
    imageSource: "asset:///images/ic_bbm.png"
    attachedObjects: [
        Invocation {
            id: invokeBBMChannel
            query {
                invokeTargetId: "sys.bbm.channels.card.previewer"
                invokeActionId: "bb.action.OPENBBMCHANNEL"
                uri: "bbmc:C00165746"
            }
        }
    ]
    onTriggered: {
        invokeBBMChannel.trigger("bb.action.OPENBBMCHANNEL")
    }
}

Enterprise Edition – Work Perimeter BES 10

Attention: If you’re running TimeTracker from BES 10 in Work Perimeter, you don’t have access to BBM Channels yet. Perhaps this will become possible with upcoming eBBM Suite.

Bbmc4

Here’s the 1-line (C++ Code) to check if your App is running from Work Perimeter:

bool ApplicationUI::isWorkPerimeter()
{
    return QDir::currentPath().contains("enterprise");
}

To make it easy to find the TimeTracker Channel I added a Dialog – otherwise the User taps on the Action and nothing happens. Here’s the slightly modified onTriggered() from source above:

onTriggered: {
    if(app.isWorkPerimeter()){
        showDialog(qsTr("TimeTracker BBM Channel"),
            qsTr("You cannot open BBM Channel directly from Work Perimeter.\nPlease switch to Private Perimeter and search for TimeTracker's BBM Channel.\nType 'TimeTracker' to search or the BBM Channel Pin: 'C00165746'"))
    } else {
        invokeBBMChannel.trigger("bb.action.OPENBBMCHANNEL")
    }
}

You’ve seen it’s easy to integrate BBM Channels. Thanks to BlackBerry providing BBM Channels as a FREE service.

More Info about deep integration:

Bluetooth LE (Beacon, Pebble)

Let users decide HowTo track a Time:

  • Touch: Open TimeTracker APP and Start / Stop Times – there’s a QuickStart / QuickStop 1-2-3
  • Shortcuts: From Keyboard Devices (Q5, Q10, Passport) use Shortcuts to Start / Stop
  • NFC Tags: Tap your Phone on a NFC Tag to Start / Stop
  • Beacons: Automatic CheckIn by detected Location (InDoor)
  • Smartwatch: Start / Stop from your Pebble

Hint: Beacons and Pebble are in beta yet and will be available later this year

Beacons (In-Door CheckIn)

particle_large_trans-600x630

Particle iBeacon by KST

You want to track In-Door-Locations ? Automatically start a Time from location ? Entering a MeetingRoom and start: Working Time – Task Meeting ?

We’ll add Beacon – Support to do this: automatically start a new TimeTracker Event if Location sent by Beacons changed: you can decide if this is done by UUID, Major or Minor values.

Pebble

You like your Pebble Smartwatch ?

pebble_red

Service Employees are working at customer site and have to Start / Stop times. Why searching the phone, open the App and Start / Stop a Time while the SmartWatch is always reachable.

TimeTracker 2.x will allow you to start / stop times directly from your Pebble and also to see how much time spent on current work.  Pebble will also remind you to send Account Reports.

First prototype using Scripting Engine by BlackBerry 10 App Talk2Watch pro:

TalktowatchAndPebble

Start TimeTracker Script from Pebble, Start a Time and immediately get feedback from TimeTracker APP:

pebble_timetracker_1_3

Inside TimeTracker APP you’ll see which Times are tracked by Pebble:

TrackedByPebble

….. more information and a detailed blog article on this will follow …

work-in-progress

Calendar integrated

calendar

To use Calendar integration you must connect one of your Calendars with TimeTracker from Application Menu Settings – Connections.

As soon as a Calendar is connected all TimeTracker Events will automatically added as Calendar Events to your connected Calendar.

Z30cal_tz

Hint: You can set the ‘State’ (Free, Tentative, Busy, Out of Office) of your Calendar Event from Settings Categories.

As you can see from screenshot above Calendar Integration also supports multiple TimeZones: Stop – Timezone was different from Start TimeZone, but Calendar Events only can work with one TimeZone, so the Stop Time was re-calculated. More Infos under TimeZones.

If your Calendar is a shared Calendar and belongs to a BlackBerry 10 Account on your Device, tracked times will be synchronized automatically and your Manager / IT Admin / Dispatcher always knows where your are and what you’ve done. This can be very valuable to support your Customers.

TimeTracker Calendar Event local:

kalender_bb10

TimeTracker Event Office 365 Web portal:

kalender_office365

In Settings – Accounting you can set automatic Reminders for next Accounting Report. Even if your App isn’t running you’ll be notified.

Reminder in Local Calendar:

Reminder

Reminder from Office365 Calendar in Web Portal:

reminder_office365

More Info about deep integration:

Notebook integrated

notes_color

On BlackBerry 10 native Remember App gives you access to Notes. These Notes are organized into Notebooks where you can have different providers:

  1. Local Notebook – stored locally on your BlackBerry 10 device
  2. Evernote Notebooks – stored locally and synchronized with Evernote
  3. Office365 Notes – stored locally and synchronized with Office365
  4. and more if other Accounts are supporting the API

1. and 2. only makes sense if you’re using TimeTracker Personal Edition where only you are interested into the notes. Evernote in this case makes your notes available in your Desktop by Evernote synchronization.

If using TimeTracker Group Edition or Enterprise Edition using a group / enterprise Evernote Account all interested members will have access to your Notes.

Hint: there are different features available – this depends from the account: from Offcie365  you can only add plain text notes, where Evernote lets add you formatted text, audio, images and other files.

From Settings – Connections you must add a Notebook:

Office365 Notes

Connect Office 365 Notebook:

Zn1

From Tracked Times tap on Notes Icon:

Zn2

Remember APP opens inside TimeTracker as CARD Invokation.

Enter your notes. office365 only allows to enter plain text and to add Tags:

Zn3

Test locally from Remember APP. Open connected Notebook:

Zn4

There you’ll find same Notes as from inside TimeTracker:

Zn5

And here same Note automatically synchronized from Office365 with Web Portal:

office365_notes

Connect Evernote

Connect Evernote Notebook:

En1

From Tracked Times tap on Notes Icon:

En2

Remember APP opens inside TimeTracker as CARD Invokation.

Enter your notes. Evernote allows to enter formatted text and to add Iamges, Audio, Files:

En3

Test locally from Remember APP. Open connected Notebook:

En4

There you’ll find same Notes as from inside TimeTracker:

En5

And here same Note automatically synchronized from Evernote with Desktop (OSX Evernote):

evernote_osx

Adding a new Notebook Entry to TimeTracker event is easy done:

void ApplicationUI::addNotebookEntry(const QString& title, const QString& uuid)
{
    InvokeRequest request;
    request.setAction("bb.action.ADD");
    request.setTarget("sys.pim.remember.composer");
    QString uri = "title=" + title;
    QVariantMap connectionsMap;
    connectionsMap = mConfiguration.value("connections").toMap();
    QVariantMap notebookMap;
    notebookMap = connectionsMap.value("notebook").toMap();
    QString lastEntry;
    lastEntry = notebookMap.value("accountKey").toString();
    lastEntry += ":";
    lastEntry += notebookMap.value("notebookKey").toString();
    if (lastEntry.length() > 1) {
        // we have a Notebook set as default
        uri += "&notebookid=";
        uri += lastEntry;
    }
    QString s = QUrl::toPercentEncoding(uri, "{}()=&:,–");
    request.setUri("remember://notebookentry?" + s);
    mInvokeManager->invoke(request);
}

This code constructs the key and opens the CARD (see screenshots above)

More infos on deep integration:

NFC integrated

Want to speed up your workflows ?

NFC Tags are your little helpers in this case: simply touch a Tag to start an action.

You can write your NFC Tags directly from inside TimeTracker: tap on NFC Tag from TabbedPane:

Nfc1

Select the action you want to automate: Simply do a Start / Stop or have Tags for each Category.

Nfc2

Don’t forget to enable NFC from your Device Settings.

There are two different types of NFC Tags:

  • Pure Text Record
  • Custom Record

Custom record contains some additional data to enable you to Open the APP from NFC Tag ! Text Records only contain a code to be used from inside TimeTracker.

Nfc3

We have selected ‘Travel Time’ – so take a new NFC Tag and Touch it with your Device:

touch2go_cat_3

If all works well you’ll get a Toast Notification:

Nfc4

Close your App and touch the NFC Tag: automagically TimeTracker opens, Start time opens and ‘Travel time’ is selected.

Nfc5

To enable your app to be invoked by NFC Tags you have to enter something like this to your bar-descriptor.xml:

<invoke-target id="org.yourdomain.yourappnameorso.nfctext">
    <invoke-target-type>APPLICATION</invoke-target-type>
    <filter>
        <action>bb.action.OPEN</action>
        <mime-type>application/vnd.rim.nfc.ndef</mime-type>
        <property var="uris" value="ndef://1/T"/>
    </filter>
</invoke-target>
    
<invoke-target id="org.yourdomain.yourappnameorso.nfccustom">
    <invoke-target-type>APPLICATION</invoke-target-type>
    <filter>
        <action>bb.action.OPEN</action>
        <mime-type>application/vnd.rim.nfc.ndef</mime-type>
        <property var="uris" value="ndef://4/org.yourdomain/yourappnameorso"/>
    </filter>
</invoke-target>

More informations on Integration:

Contacts integrated

contacts_color

Tracking Times at Customer Site and these Customers are available from your BlackBerry 10 Contacts ?

Makes sense to add the Customer.

Customer Company Name, Contact Person Name, email (if available) and Photo will be displayed directly inside your Tracked Time Event.

Open a Tracked Time from List and directly from first page (Overview) you can see if

  • there’s already a Contact added (blue colored Icon)
  • you can add a Contact optionally (grey colored Icon)
  • for this Category you cannot add a Contact (disabled Icon)

C1

Tapping on the Icon will directly jump to Contacts Data from Details Page:

C2

If a Contact is already added you’ll see the Photo (if there’s a photo), Company Name, Contact Person Name and eMail.

There are Buttons to add another Contact: Opens Contact – Search from where you can select one. Another button allows to remove the current Contact.

From Overflow Menu (three dots) you can open the details for this Contact:

C3

Contact opens as CARD inside TimeTracker using Invocation Framework:

C4

Now you can call the Contact, send Messages or take a look at the address from BlackBerry Map:

C5

 

Mor informations on deep integration:

GPS, Map, Routing integrated

geo_data_720_480

From Settings Categories you can define if you need Location Data. TimeTracker can get Location Data at Start, Stop, Start + Stop, continously or never.

Think carefully where you really need geo locations. Not only Coordinates from GPS can be added to TimeTracker but also reverse Geocoding to get the address. Again: do you really need reverse Geocoding done by BlackBerry 10 Device or perhaps add this later from Server ? There’s one special usecase where it makes sense to get reverse Geocoding on your device: to visualize Border Crossing.

You can verify tracked Geo Positions: open TimeTracker event from List.

From overview tap on the geolocation Icon or select the Segment from TitleBar:

Geo1

The Icon can look different: this one tells you that 2 Locations are needed: at Start and at Stop.

Here are the details from geo Page:

Geo2

Tapping on Coordinates or Address opens BlackBerry Map:

Geo3

Tapping on the Button will navigate you to this Point.

More on Integration: