Again, based on the fact that the Samsung
SmartApp Challenge that has
already begun on the 5th of
September and is going on currently with the last date of submission being 30th
Nov 2013, which expects the use of the pen package and the look package, this is the promised article on the look package. Let us start from some fundamentals.
First, What
is Look?
From the last 3 articles, we have
seen that Samsung Mobile SDK is a SDK that brings 10 different small packages together
into one SDK to ease the developers world. Look is a java package available as
part of that same Samsung Mobile SDK. It is a package that provides specialized widgets for
additional functions beyond what the Android Views already provide. And of
course it builds on what the pen package already provides. In fact, Look requires that S Pen be used to access its
features.
Next, then, what
are the functions Look provides?
It supports
- · WritingBuddy – This basically helps by giving an editor when a S Pen comes closer to an area that can take an input from the pen. The user can write in this editor, which would then by recognized by the WritingBuddy and converted into a digital format for further usage!
Quite a useful feature considering that the S Pen would lead to a lot of apps that would take a written input but the UI should still be compact with out having large canvases occupying the UI for pen inputs.
This can be used
with on any view layouts and in TextEdit. WritingBuddy recognizes numbers and
alpahabets and even handwriting images which would lead to usages like
signature recognition etc.
- · AirButton – I see this feature as an advanced context sensitive menu! A set of items or images or what ever may be relevant to a particular context can be shown using an air button.
The wow factor in this is you can creatively define the gravity, the direction and the display type making it look like a feature that was always needed but not invented till now!
Based on the user selection of a menu item / a recent item display there, the next set of actions can be invoked.
- · SmartClip – As the name says, SmartClip is indeed a smart clipboard, which does not just capture the selected content, but also the metadata related to the content! This metadata is converted to text that can be searched on or sent to other applications for further use.
This feature would look
more magical especially when there is metadata available with the content
captured. For example, if there are URLs that are part of the content that is
captured, the SmartClip can capture data from the URL too and send it to the
destination app.
- · PointerIcon – This is a good to have feature – something that is taken for granted in many desktop apps but has found its way into a mobile through this package!
The Look Package Architecture
This diagram is taken from the Samsung
documentation.
Lot of custom apps can be developed using
the look package and as you see the look package is mainly an extension to the
Android View package.
The Development environment
In order to develop an app that uses the
look package and support all of the above-mentioned features, you need to
download the complete Samsung Mobile SDK
which can be downloaded independently or through an eclipse. Both ways of
downloading the SDK and setting up the Development environment are described here.
Once the SDK is downloaded, the contents of
the SDK are as shown:
The libs folder has all the 10 different
packages that I have detailed out in
my earlier post. Each of the folders has the respective library jars along
with the basic Samsung mobile SDK.
These jars are to be copied into the libs
folder of your project trying to develop using a look feature.
Now, let us see a very simple example that
changes the pointer icon when the pen hovers over a TextView. On the click of a
button, the icon changes.
The 3 member variables created are:
private
boolean mIsDefault
= false;
private
TextView mHoverTextView;
private
SlookPointerIcon mPointerIcon
= new
SlookPointerIcon();
With in the onCreate() method,
//get a handle to the
button
Button changeIcon = (Button)findViewById(R.id.btn_changeicon);
//get a handle to the
text view
mHoverTextView
=
(TextView)findViewById(R.id.text_hoverarea);
// set the hover icon
mPointerIcon.setHoverIcon(mHoverTextView,
getResources()
.getDrawable(R.drawable.ic_launcher));
//On
click of the button, change the icon
changeIcon.setOnClickListener(new
View.OnClickListener() {
public
void onClick(View v) {
if (mIsDefault) {
mPointerIcon.setHoverIcon(mHoverTextView, getResources().getDrawable(R.drawable.ic_launcher)); mIsDefault = false;
((Button) v).setText("Turn off");
} else {
mPointerIcon.setHoverIcon(mHoverTextView,
null); mIsDefault = true;
((Button) v).setText("Turn on");
((Button) v).setText("Turn on");
}
}
});
As simple as this, you can change the pointer icon!!
Similarly you can work with the WritingBuddy or the
AirButton and the SmartClip. The samples in the downloaded SDK are a good guide
to go by.