Skip to content
Snippets Groups Projects
Commit 45f4849b authored by hazzeh's avatar hazzeh Committed by Dan
Browse files

Update info fragment for openHAB 2 (#209)


Fetch uuid and api version from openHAB2
and display them in the info dialog.

Fixes #191

Signed-off-by: default avatarHans Hazelius <hans@hazelius.se>
parent 9937acc1
No related branches found
No related tags found
No related merge requests found
......@@ -23,6 +23,9 @@ import android.widget.TextView;
import com.loopj.android.http.TextHttpResponseHandler;
import cz.msebera.android.httpclient.Header;
import org.json.JSONException;
import org.json.JSONObject;
import org.openhab.habdroid.R;
import org.openhab.habdroid.util.MyAsyncHttpClient;
......@@ -30,7 +33,9 @@ import org.openhab.habdroid.util.MyAsyncHttpClient;
public class OpenHABInfoFragment extends DialogFragment {
private static final String TAG = OpenHABInfoFragment.class.getSimpleName();
private int mOpenHABVersion;
private TextView mOpenHABVersionText;
private TextView mOpenHABVersionLabel;
private TextView mOpenHABUUIDText;
private TextView mOpenHABSecretText;
private TextView mOpenHABSecretLabel;
......@@ -40,7 +45,6 @@ public class OpenHABInfoFragment extends DialogFragment {
private static MyAsyncHttpClient mAsyncHttpClient;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
......@@ -50,6 +54,7 @@ public class OpenHABInfoFragment extends DialogFragment {
mOpenHABUUIDText = (TextView)view.findViewById(R.id.openhab_uuid);
mOpenHABSecretText = (TextView)view.findViewById(R.id.openhab_secret);
mOpenHABSecretLabel = (TextView)view.findViewById(R.id.openhab_secret_label);
mOpenHABVersionLabel = (TextView)view.findViewById(R.id.openhab_version_label);
Bundle bundle=getArguments();
if (bundle!=null){
......@@ -57,6 +62,7 @@ public class OpenHABInfoFragment extends DialogFragment {
mOpenHABBaseUrl = bundle.getString("openHABBaseUrl");
mUsername = bundle.getString("username");
mPassword = bundle.getString("password");
mOpenHABVersion = bundle.getInt("openHABVersion");
mAsyncHttpClient.setBasicAuth(mUsername, mPassword);
} else {
Log.e(TAG, "No openHABBaseURl parameter passed, can't fetch openHAB info from nowhere");
......@@ -84,11 +90,17 @@ public class OpenHABInfoFragment extends DialogFragment {
public void onResume() {
Log.d(TAG, "onResume()");
super.onResume();
Log.d(TAG, "url = " + mOpenHABBaseUrl + "static/version");
mAsyncHttpClient.get(mOpenHABBaseUrl + "static/version", new TextHttpResponseHandler() {
setVersionText();
setUuidText();
setSecretText();
}
private void setSecretText() {
mAsyncHttpClient.get(mOpenHABBaseUrl + "static/secret", new TextHttpResponseHandler() {
@Override
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable error) {
mOpenHABVersionText.setText("Unknown");
mOpenHABSecretText.setVisibility(View.GONE);
mOpenHABSecretLabel.setVisibility(View.GONE);
if (error.getMessage() != null) {
Log.e(TAG, error.getMessage());
}
......@@ -96,11 +108,22 @@ public class OpenHABInfoFragment extends DialogFragment {
@Override
public void onSuccess(int statusCode, Header[] headers, String responseString) {
Log.d(TAG, "Got version = " + responseString);
mOpenHABVersionText.setText(responseString);
Log.d(TAG, "Got secret = " + responseString);
mOpenHABSecretText.setVisibility(View.VISIBLE);
mOpenHABSecretLabel.setVisibility(View.VISIBLE);
mOpenHABSecretText.setText(responseString);
}
});
mAsyncHttpClient.get(mOpenHABBaseUrl + "static/uuid", new TextHttpResponseHandler() {
}
private void setUuidText() {
String uuidUrl;
if (mOpenHABVersion == 1) {
uuidUrl = mOpenHABBaseUrl + "static/uuid";
} else {
uuidUrl = mOpenHABBaseUrl + "rest/uuid";
}
mAsyncHttpClient.get(uuidUrl, new TextHttpResponseHandler() {
@Override
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable error) {
mOpenHABUUIDText.setText("Unknown");
......@@ -115,11 +138,20 @@ public class OpenHABInfoFragment extends DialogFragment {
mOpenHABUUIDText.setText(responseString);
}
});
mAsyncHttpClient.get(mOpenHABBaseUrl + "static/secret", new TextHttpResponseHandler() {
}
private void setVersionText() {
final String versionUrl;
if (mOpenHABVersion == 1) {
versionUrl = mOpenHABBaseUrl + "static/version";
} else {
versionUrl = mOpenHABBaseUrl + "rest";
}
Log.d(TAG, "url = " + versionUrl);
mAsyncHttpClient.get(versionUrl, new TextHttpResponseHandler() {
@Override
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable error) {
mOpenHABSecretText.setVisibility(View.GONE);
mOpenHABSecretLabel.setVisibility(View.GONE);
mOpenHABVersionText.setText("Unknown");
if (error.getMessage() != null) {
Log.e(TAG, error.getMessage());
}
......@@ -127,10 +159,21 @@ public class OpenHABInfoFragment extends DialogFragment {
@Override
public void onSuccess(int statusCode, Header[] headers, String responseString) {
Log.d(TAG, "Got secret = " + responseString);
mOpenHABSecretText.setVisibility(View.VISIBLE);
mOpenHABSecretLabel.setVisibility(View.VISIBLE);
mOpenHABSecretText.setText(responseString);
String version="";
if(mOpenHABVersion == 1) {
version = responseString;
mOpenHABVersionLabel.setText(getResources().getText(R.string.info_openhab_version_label));
} else {
try {
JSONObject pageJson = new JSONObject(responseString);
version = pageJson.getString("version");
mOpenHABVersionLabel.setText(getResources().getText(R.string.info_openhab_apiversion_label));
} catch (JSONException e) {
Log.e(TAG, "Problem fetching version string");
}
}
Log.d(TAG, "Got version = " + version);
mOpenHABVersionText.setText(version);
}
});
}
......
......@@ -873,6 +873,7 @@ public class OpenHABMainActivity extends AppCompatActivity implements OnWidgetSe
bundle.putString(OpenHABVoiceService.OPENHAB_BASE_URL_EXTRA, openHABBaseUrl);
bundle.putString("username", openHABUsername);
bundle.putString("password", openHABPassword);
bundle.putInt("openHABVersion", mOpenHABVersion);
FragmentManager fm = getSupportFragmentManager();
Fragment openHabInfo = new OpenHABInfoFragment();
......
......@@ -74,6 +74,7 @@
<string name="info_write_tag_unsupported">This device doesn\'t have NFC support :-(</string>
<string name="info_write_tag_disabled">NFC is disabled. Please enable it in device settings menu.</string>
<string name="info_openhab_version_label">openHAB Version</string>
<string name="info_openhab_apiversion_label">openHAB Rest API Version</string>
<string name="info_openhab_uuid_label">openHAB UUID</string>
<string name="info_openhab_secret_label">openHAB Secret</string>
<string name="action_settings">Settings</string>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment