import org.iotivity.base.ErrorCode;
import org.iotivity.base.ModeType;
+import org.iotivity.base.OcAccountManager;
import org.iotivity.base.OcConnectivityType;
import org.iotivity.base.OcException;
import org.iotivity.base.OcHeaderOption;
-import org.iotivity.base.ObserveType;
import org.iotivity.base.OcPlatform;
import org.iotivity.base.OcPresenceStatus;
import org.iotivity.base.OcProvisioning;
import org.iotivity.base.PlatformConfig;
import org.iotivity.base.QualityOfService;
import org.iotivity.base.ServiceType;
-import org.iotivity.base.OcAccountManager;
-import org.iotivity.service.easysetup.mediator.ESConstants;
import org.iotivity.service.easysetup.mediator.CloudProp;
import org.iotivity.service.easysetup.mediator.CloudPropProvisioningCallback;
import org.iotivity.service.easysetup.mediator.CloudPropProvisioningStatus;
import org.iotivity.service.easysetup.mediator.DeviceProp;
import org.iotivity.service.easysetup.mediator.DevicePropProvisioningCallback;
import org.iotivity.service.easysetup.mediator.DevicePropProvisioningStatus;
+import org.iotivity.service.easysetup.mediator.ESConstants;
import org.iotivity.service.easysetup.mediator.ESException;
import org.iotivity.service.easysetup.mediator.EasySetup;
import org.iotivity.service.easysetup.mediator.EnrolleeConf;
import org.iotivity.service.easysetup.mediator.RemoteEnrollee;
import org.iotivity.service.easysetup.mediator.SecurityProvisioningCallback;
import org.iotivity.service.easysetup.mediator.SecurityProvisioningStatus;
-import org.iotivity.service.easysetup.mediator.enums.ESCloudProvState;
import org.iotivity.service.easysetup.mediator.enums.ESResult;
import org.iotivity.service.easysetup.mediator.enums.WIFI_AUTHTYPE;
import org.iotivity.service.easysetup.mediator.enums.WIFI_ENCTYPE;
implements OcPlatform.OnPresenceListener,
OcResource.OnObserveListener{
private static final String TAG = "Easysetup Mediator: ";
+ private static final String SUCCESS = "Success";
+ private static final String FAILED = "Failed";
+ private static final String ACCESSTOKEN = "accesstoken";
+ private static final String REFRESHTOKEN = "refreshtoken";
+ private static final String COMMUNICATION_ERROR = "Communication Error";
+ private static final String deviceID = "9E09F4FE-978A-4BC3-B356-1F93BCA37829";
+ private static final String CIServer = "coap+tcp://13.124.29.169:5683";
PlatformConfig cfg;
OcAccountManager m_accountManager = null;
- final String deviceID = "9E09F4FE-978A-4BC3-B356-1F93BCA37829";
- final String CIServer = "coap+tcp://13.124.29.169:5683";
-
private static final int BUFFER_SIZE = 1024;
-
private String filePath = "";
public static final String OIC_CLIENT_JSON_DB_FILE = "oic_svr_db_client.dat";
public static final String OIC_SQL_DB_FILE = "PDM.db";
startActivityForResult(intent, 2);
mProvisionCloudPropInfo.setVisibility(View.VISIBLE);
break;
+
+ default:
+ break;
}
}
});
- ArrayAdapter<CharSequence> adAuthType, adEnctype;
+ ArrayAdapter<CharSequence> adAuthType;
+ ArrayAdapter<CharSequence> adEnctype;
adAuthType = ArrayAdapter.createFromResource(this, R.array.auth_type,
android.R.layout.simple_spinner_item);
}
SharedPreferences settings =
getApplicationContext().getSharedPreferences("IoTivityCloud", 0);
- mAccessToken = settings.getString("accesstoken", null);
- mRefreshtoken = settings.getString("refreshtoken", null);
+ mAccessToken = settings.getString(ACCESSTOKEN, null);
+ mRefreshtoken = settings.getString(REFRESHTOKEN, null);
mUserID = settings.getString("uid", null);
if(mRefreshtoken == null)
}
Log.d(TAG, "Sql db directory exists at " + sqlDbPath);
- //SQLiteDatabase.openOrCreateDatabase(sqlDbPath+ OIC_SQL_DB_FILE, null);
OcProvisioning.provisionInit(sqlDbPath + OIC_SQL_DB_FILE);
mSecurityMode.setChecked(true);
} catch (OcException e) {
- logMessage(TAG + "provisionInit error: " + e.getMessage());
- Log.e(TAG, e.getMessage());
+ Log.e(TAG, "provisionInit error: " + e.getMessage());
Toast.makeText(this,"provisionInit error: " + e.getMessage(),
Toast.LENGTH_LONG).show();
mSecurityMode.setChecked(false);
*/
OcProvisioning.provisionClose();
} catch (OcException e) {
- logMessage(TAG + "provisionClose error: " + e.getMessage());
- Log.e(TAG, e.getMessage());
+ Log.e(TAG, "provisionClose error: " + e.getMessage());
+ }
+ }
+
+ private String getSecureUDPEndpoint(OcResource ocResource) {
+ if(null == ocResource) {
+ return null;
+ }
+
+ String udpEndpoint = null;
+ List<String> endpoints = ocResource.getAllHosts();
+ if(null != endpoints && !endpoints.isEmpty())
+ {
+ Log.d(TAG, "Endpoints of the resource: " + endpoints);
+ Iterator<String> itr = endpoints.iterator();
+ while(itr.hasNext())
+ {
+ String endpoint = itr.next();
+ if(null != endpoint && endpoint.contains("coaps://"))
+ {
+ udpEndpoint = endpoint;
+ Log.d(TAG, "Found coaps endpoint: setHost() returned " + udpEndpoint);
+ break;
+ }
+ }
}
+ else
+ {
+ Log.d(TAG, "No endpoints found");
+ }
+ return udpEndpoint;
}
OcPlatform.OnResourceFoundListener listener =
if(mSecurityMode.isChecked())
{
- // Change the host of the resource to secure endpoint.
- List<String> endpoints = ocResource.getAllHosts();
- if(null != endpoints || 0 == endpoints.size())
- {
- Log.d(TAG, "Endpoints of the resource: " + endpoints);
- Iterator<String> itr = endpoints.iterator();
- while(itr.hasNext())
- {
- String endpoint = itr.next();
- if(null != endpoint && endpoint.contains("coaps://"))
- {
- String retval = ocResource.setHost(endpoint);
- Log.d(TAG, "Found coaps endpoint: setHost() returned " + retval);
- break;
- }
- }
- }
- else
- {
- Log.d(TAG, "No endpoints found");
+ String endpoint = getSecureUDPEndpoint(ocResource);
+ if(null != endpoint && !endpoint.isEmpty()) {
+ // Change the host of the resource to secure endpoint.
+ ocResource.setHost(endpoint);
}
}
runOnUiThread(new Runnable() {
@Override
public void run() {
- mSecStateText.setText("Success");
+ mSecStateText.setText(SUCCESS);
mSecDevIDText.setText(securityProvisioningStatus.getDevUUID());
}
});
runOnUiThread(new Runnable() {
@Override
public void run() {
- mSecStateText.setText("Failed");
+ mSecStateText.setText(FAILED);
mStartConfigureSec.setEnabled(true);
}
});
runOnUiThread(new Runnable() {
@Override
public void run() {
- mGetconfigurationStateText.setText("Success");
+ mGetconfigurationStateText.setText(SUCCESS);
mDevNameText.setText(enrolleeConf.getDeviceName());
mModelNumberText.setText(enrolleeConf.getModelNumber());
setWifiModes(enrolleeConf.getWiFiModes());
runOnUiThread(new Runnable() {
@Override
public void run() {
- mGetconfigurationStateText.setText("Communication Error");
+ mGetconfigurationStateText.setText(COMMUNICATION_ERROR);
mStartGetConfiguration.setEnabled(true);
}
});
runOnUiThread(new Runnable() {
@Override
public void run() {
- mGetconfigurationStateText.setText("Failed");
+ mGetconfigurationStateText.setText(FAILED);
mStartGetConfiguration.setEnabled(true);
}
});
runOnUiThread(new Runnable() {
@Override
public void run() {
- mGetconfigurationStateText.setText("Failed");
+ mGetconfigurationStateText.setText(FAILED);
mStartGetConfiguration.setEnabled(true);
}
});
@Override
public void run() {
if(result.equals(ESResult.ES_OK)) {
- mProvisionDevPropState.setText("Success");
+ mProvisionDevPropState.setText(SUCCESS);
}
else if(result.equals(ESResult.ES_ERROR)) {
- mProvisionDevPropState.setText("Failed");
+ mProvisionDevPropState.setText(FAILED);
}
else if(result.equals(ESResult.ES_COMMUNICATION_ERROR)) {
- mProvisionDevPropState.setText("Communication Error");
+ mProvisionDevPropState.setText(COMMUNICATION_ERROR);
}
mStartProvisionDevProp.setEnabled(true);
}
runOnUiThread(new Runnable() {
@Override
public void run() {
- mProvisionDevPropState.setText("Failed");
+ mProvisionDevPropState.setText(FAILED);
mStartProvisionDevProp.setEnabled(true);
}
});
mProvisionCloudPropState.setText("CERT-provisioning fails");
}
else if(result.equals(ESResult.ES_COMMUNICATION_ERROR)){
- mProvisionCloudPropState.setText("Communication Error");
+ mProvisionCloudPropState.setText(COMMUNICATION_ERROR);
}
else {
mProvisionCloudPropState.setText("Cloud Provisioning fails");
runOnUiThread(new Runnable() {
@Override
public void run() {
- mProvisionCloudPropState.setText("Failed");
+ mProvisionCloudPropState.setText(FAILED);
mStartProvisionCloudProp.setEnabled(true);
}
});
OutputStream outputStream = null;
int length;
byte[] buffer = new byte[BUFFER_SIZE];
+ boolean retVal = true;
try {
inputStream = getAssets().open(OIC_CLIENT_JSON_DB_FILE);
File file = new File(filePath);
outputStream.write(buffer, 0, length);
}
} catch (NullPointerException e) {
- logMessage(TAG + "Null pointer exception " + e.getMessage());
- Log.e(TAG, e.getMessage());
- return false;
+ Log.e(TAG, "Null pointer exception: " + e.getMessage());
+ retVal = false;
} catch (FileNotFoundException e) {
- logMessage(TAG + "Json svr db file not found " + e.getMessage());
- Log.e(TAG, e.getMessage());
- return false;
+ Log.e(TAG, "Json svr db file not found: " + e.getMessage());
+ retVal = false;
} catch (IOException e) {
- logMessage(TAG + OIC_CLIENT_JSON_DB_FILE + " file copy failed");
- Log.e(TAG, e.getMessage());
- return false;
+ Log.e(TAG, OIC_CLIENT_JSON_DB_FILE + " file copy failed: " + e.getMessage());
+ retVal = false;
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
Log.e(TAG, e.getMessage());
- return false;
+ retVal = false;
}
}
if (outputStream != null) {
outputStream.close();
} catch (IOException e) {
Log.e(TAG, e.getMessage());
- return false;
+ retVal = false;
}
}
}
- return true;
- }
-
- public void logMessage(String text) {
-
+ return retVal;
}
public void setWifiModes(ArrayList<WIFI_MODE> types) {
Log.d(TAG, "Presence response: " + strStaus + " sequence: " + sequence + " host: " + host);
runOnUiThread(new Runnable()
{
+ @Override
public void run() {
Toast.makeText(EasysetupActivity.this, "Easy-Setup completed", Toast.LENGTH_SHORT).show();
}
public void onPostCompleted(List<OcHeaderOption> list, OcRepresentation ocRepresentation) {
Log.d(TAG, "onRefreshTokenPost..");
try {
- mAccessToken = ocRepresentation.getValue("accesstoken");
- mRefreshtoken = ocRepresentation.getValue("refreshtoken");
+ mAccessToken = ocRepresentation.getValue(ACCESSTOKEN);
+ mRefreshtoken = ocRepresentation.getValue(REFRESHTOKEN);
saveCloudTokenAtSharedPreferences();
}
runOnUiThread(new Runnable()
{
+ @Override
public void run() {
Toast.makeText(EasysetupActivity.this, "RefreshToken in progress..", Toast.LENGTH_SHORT).show();
}
rep.setValue("di", deviceID);
rep.setValue("granttype", "refresh_token");
- rep.setValue("refreshtoken", mRefreshtoken);
+ rep.setValue(REFRESHTOKEN, mRefreshtoken);
rep.setValue("uid", mUserID);
authResource.post(rep, new HashMap<String, String>(), onRefreshTokenPost);
}
Log.d(TAG, "accesstoken: " + mAccessToken);
SharedPreferences settings = getApplicationContext().getSharedPreferences("IoTivityCloud", 0);
SharedPreferences.Editor editor = settings.edit();
- editor.putString("accesstoken", mAccessToken);
- editor.putString("refreshtoken", mRefreshtoken);
+ editor.putString(ACCESSTOKEN, mAccessToken);
+ editor.putString(REFRESHTOKEN, mRefreshtoken);
editor.putString("uid", mUserID);
- if(editor.commit() == true)
+ if(editor.commit())
Log.d(TAG, "accesstoken saved");
else
Log.d(TAG, "accesstoken not saved");
try {
runOnUiThread(new Runnable()
{
+ @Override
public void run() {
Toast.makeText(EasysetupActivity.this, "Sign-up completed", Toast.LENGTH_SHORT).show();
}
});
- mAccessToken = ocRepresentation.getValue("accesstoken");
+ mAccessToken = ocRepresentation.getValue(ACCESSTOKEN);
mUserID = ocRepresentation.getValue("uid");
if(mAccessToken != null)
runOnUiThread(new Runnable()
{
+ @Override
public void run() {
Toast.makeText(EasysetupActivity.this, "SignUpDevice in progress..", Toast.LENGTH_SHORT).show();
}
runOnUiThread(new Runnable()
{
+ @Override
public void run() {
Toast.makeText(EasysetupActivity.this, "Sign-in completed", Toast.LENGTH_SHORT).show();
}
runOnUiThread(new Runnable()
{
+ @Override
public void run() {
Toast.makeText(EasysetupActivity.this, "SignInDevice in progress..", Toast.LENGTH_SHORT).show();
}
package org.iotivity.service.easysetup;
import android.app.Activity;
-import android.app.AlertDialog;
-import android.content.DialogInterface;
import android.content.Intent;
-import android.content.SharedPreferences;
-import android.net.ConnectivityManager;
-import android.net.NetworkInfo;
import android.net.UrlQuerySanitizer;
-import android.net.wifi.WifiConfiguration;
-import android.net.wifi.WifiManager;
import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.preference.PreferenceManager;
import android.util.Log;
import android.view.View;
-import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.LinearLayout;
-import android.widget.ProgressBar;
-import android.widget.RadioButton;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import org.iotivity.base.ModeType;
-import org.iotivity.base.OcException;
-import org.iotivity.base.OcPlatform;
-import org.iotivity.base.OcProvisioning;
-import org.iotivity.base.PlatformConfig;
-import org.iotivity.base.QualityOfService;
-import org.iotivity.base.ServiceType;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
public class LoginActivity extends Activity {
private static final String TAG = "Easysetup Login: ";
mWebView.setVisibility(View.VISIBLE);
mWebView.setInitialScale(200);
mWebView.getSettings().setJavaScriptEnabled(true);
- //mWebView.getSettings().setSupportZoom(true);
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.setWebViewClient(new WebViewClientClass());
mWebView.loadUrl("https://github.com/login?return_to=%2Flogin%2Foauth%2Fauthorize%3Fclient_id%3Dea9c18f540323b0213d0%26redirect_uri%3Dhttp%253A%252F%252Fwww.example.com%252Foauth_callback%252F");
}
- public void onDestroy() {
- super.onDestroy();
- }
-
private class WebViewClientClass extends WebViewClient {
@Override
sanitizer.setAllowUnregisteredParamaters(true);
sanitizer.parseUrl(url);
- String mAuthCode = null;
- mAuthCode = sanitizer.getValue("code");
+ String mAuthCode = sanitizer.getValue("code");
Intent intent = getIntent();
intent.putExtra("authCode", mAuthCode);