package com.sromku.simple.fb.example.fragments;
import android.os.Bundle;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.sromku.simple.fb.Permission;
import com.sromku.simple.fb.SimpleFacebook;
import com.sromku.simple.fb.entities.Device;
import com.sromku.simple.fb.example.R;
import com.sromku.simple.fb.example.utils.Utils;
import com.sromku.simple.fb.listeners.OnAuthorizationDeviceListener;
import com.sromku.simple.fb.listeners.OnConnectDeviceListener;
public class SmartDeviceFragment extends BaseFragment{
private final static String EXAMPLE = "Smart Device - Connect";
private TextView mConnectResult;
private TextView mAuthResult;
private Button mConnectButton;
private Button mAuthButton;
private Device mConenctedDevice;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().setTitle(EXAMPLE);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_smart_device, container, false);
mConnectResult = (TextView) view.findViewById(R.id.result_connect);
mConnectButton = (Button) view.findViewById(R.id.button_connect);
mAuthResult = (TextView) view.findViewById(R.id.result_poll);
mAuthButton = (Button) view.findViewById(R.id.button_poll);
// set connect device
mConnectButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Permission[] permissions = new Permission[] {
Permission.USER_ABOUT_ME,
Permission.EMAIL
};
SimpleFacebook.getInstance().connectDevice(permissions, new OnConnectDeviceListener() {
@Override
public void onThinking() {
showDialog();
}
@Override
public void onException(Throwable throwable) {
hideDialog();
mConnectResult.setText(throwable.getMessage());
}
@Override
public void onFail(String reason) {
hideDialog();
mConnectResult.setText(reason);
}
@Override
public void onComplete(Device device) {
hideDialog();
String str = Utils.toHtml(device);
mConnectResult.setText(Html.fromHtml(str));
mConenctedDevice = device;
}
});
}
});
// set authorization
mAuthButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mConenctedDevice == null) {
Toast.makeText(getActivity().getApplicationContext(), "You need to connect device first", Toast.LENGTH_SHORT).show();
return;
}
SimpleFacebook.getInstance().pollDeviceAuthorization(mConenctedDevice.getAuthorizationCode(), new OnAuthorizationDeviceListener() {
@Override
public void onThinking() {
showDialog();
}
@Override
public void onException(Throwable throwable) {
hideDialog();
mAuthResult.setText(throwable.getMessage());
}
@Override
public void onFail(String reason) {
hideDialog();
mAuthResult.setText(reason);
}
@Override
public void onComplete(String accessToken) {
hideDialog();
mAuthResult.setText("Access Token: " + accessToken);
}
});
}
});
return view;
}
}