package com.samsung.spensdk.example.signature;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.samsung.spensdk.applistener.SCanvasInitializeListener;
import com.samsung.spensdk.SCanvasView;
import com.samsung.spensdk.example.R;
public class SPen_Example_SignatureRegistration extends Activity {
private final String TAG = "SPenSDK Sample";
public ArrayList<ListItem> mSignatureListItem;
public SCanvasView mSCanvas;
public ListAdapter mSignatureAdapter;
public int mSigntureRegistrationNum = 0;
public int mSigntureRegistrationNumMax = 3;
public ListView mSignatureList;
private Toast m_Toast = null;
private int mResult = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.example_signature_registration);
mSCanvas = (SCanvasView) findViewById(R.id.canvas_view);
// ====================================================================================
//
// Set Callback Listener(Interface)
//
// ====================================================================================
SCanvasInitializeListener scanvasInitializeListener = new SCanvasInitializeListener() {
@Override
public void onInitialized() {
// --------------------------------------------
// Start SCanvasView/CanvasView Task Here
// --------------------------------------------
// Start Signature Mode
mSCanvas.openSignatureEngine();
mSCanvas.setCanvasZoomEnable(false); // disable Zoom
}
};
mSCanvas.setSCanvasInitializeListener(scanvasInitializeListener);
sToastS(getResources().getString(R.string.signature_registration_draw));
mSignatureListItem = new ArrayList<ListItem>();
mSignatureListItem.add(new ListItem(getResources().getString(R.string.signature_registration_registration_title),getResources().getString(R.string.signature_registration_registration_sub_title)));
mSignatureListItem.add(new ListItem(getResources().getString(R.string.signature_retry_title),getResources().getString(R.string.signature_retry_sub_title)));
mSignatureAdapter = new ListAdapter(this);
mSignatureList = (ListView) findViewById(R.id.signature_list);
mSignatureList.setAdapter(mSignatureAdapter);
mSignatureList.setItemsCanFocus(false);
mSignatureList.setTextFilterEnabled(true);
mSignatureList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (position == 0) {
mResult = mSCanvas.registerSignature();
if (mSCanvas.isSignatureRegistrationCompleted() && mResult > 0) {
finish();
// Signature registration is completed
Toast.makeText(SPen_Example_SignatureRegistration.this, getResources().getString(R.string.signature_registration_registration_success_3), Toast.LENGTH_SHORT).show();
} else {
if (mResult == 2) {
mSigntureRegistrationNum = mResult;
// Signature registration is not completed
sToastS(getResources().getString(R.string.signature_registration_registration_success_2));
} else if (mResult == 1) {
mSigntureRegistrationNum = mResult;
// Signature registration is not completed
sToastS(getResources().getString(R.string.signature_registration_registration_success_1));
} else {
// Signature registration error
sToastS(getResources().getString(R.string.signature_registration_registration_failure));
}
}
mSignatureAdapter.notifyDataSetChanged();
} else if (position == 1) {
if (mSCanvas.clearSignatureScreen()) {
// Canvas reset success
sToastS(getResources().getString(R.string.signature_registration_draw));
}
}
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
// Release SCanvasView resources
if(!mSCanvas.closeSCanvasView())
Log.e(TAG, "Fail to close SCanvasView");
}
class ListItem {
ListItem(String iTitle, String isubTitle) {
Title = iTitle;
subTitle = isubTitle;
}
String Title;
String subTitle;
}
class ListAdapter extends BaseAdapter {
LayoutInflater Inflater;
public ListAdapter(Context context) {
Inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mSignatureListItem.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = Inflater.inflate(R.layout.example_signature_list_item, parent, false);
}
if (position == 0) {
TextView title = (TextView) convertView.findViewById(R.id.signature_list_title);
title.setText(mSignatureListItem.get(position).Title + " - ( " + mSigntureRegistrationNum + " / " + mSigntureRegistrationNumMax + " )");
TextView subtitle = (TextView) convertView.findViewById(R.id.signature_list_subtitle);
subtitle.setText(mSignatureListItem.get(position).subTitle);
} else {
TextView title = (TextView) convertView.findViewById(R.id.signature_list_title);
title.setText(mSignatureListItem.get(position).Title);
TextView subtitle = (TextView) convertView.findViewById(R.id.signature_list_subtitle);
subtitle.setText(mSignatureListItem.get(position).subTitle);
}
return convertView;
}
}
@Override
public void onBackPressed() {
mSCanvas.closeSignatureEngine();
super.onBackPressed();
}
public void sToastS(String i_String) {
if (m_Toast == null) {
m_Toast = Toast.makeText(this, i_String, Toast.LENGTH_SHORT);
} else {
m_Toast.setText(i_String);
}
m_Toast.show();
}
}