package org.societies.android.platform.useragent.feedback;
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.convert.Registry;
import org.simpleframework.xml.convert.RegistryStrategy;
import org.simpleframework.xml.core.Persister;
import org.simpleframework.xml.strategy.Strategy;
import org.societies.api.internal.schema.useragent.feedback.UserFeedbackPrivacyNegotiationEvent;
import org.societies.simple.basic.URIConverter;
import android.os.Bundle;
import android.os.Parcelable;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
public class MainActivity extends Activity {
private static final String LOG_TAG = MainActivity.class.getName();
private static final String EXTRA_PRIVACY_POLICY = "org.societies.userfeedback.eventInfo";
private static String beanXML = "<userFeedbackPrivacyNegotiationEvent xmlns=\"http://societies.org/api/internal/schema/useragent/feedback\"> <responsePolicy> <responseItems class=\"java.util.ArrayList\"> <responseItem> <decision>PERMIT</decision> <requestItem> <actions class=\"java.util.ArrayList\">" +
" <action> <actionConstant>READ</actionConstant> <optional>false</optional> </action> </actions> <conditions class=\"java.util.ArrayList\"> <condition> <conditionConstant>SHARE_WITH_CIS_MEMBERS_ONLY</conditionConstant>" +
" <optional>true</optional> <value>YES</value> </condition> <condition> <conditionConstant>SHARE_WITH_3RD_PARTIES</conditionConstant> <optional>true</optional> <value>YES</value> </condition> <condition>" +
" <conditionConstant>RIGHT_TO_OPTOUT</conditionConstant> <optional>false</optional> <value>YES</value> </condition> <condition> <conditionConstant>DATA_RETENTION_IN_HOURS</conditionConstant> <optional>true</optional> <value>24</value>" +
" </condition> </conditions> <optional>false</optional> <resource> <dataType>locationSymbolic</dataType> <scheme>CONTEXT</scheme> </resource> </requestItem> </responseItem> <responseItem> <decision>PERMIT</decision>" +
" <requestItem> <actions class=\"java.util.ArrayList\"> <action> <actionConstant>READ</actionConstant> <optional>false</optional> </action> </actions> <conditions class=\"java.util.ArrayList\"> <condition> <conditionConstant>SHARE_WITH_CIS_MEMBERS_ONLY</conditionConstant>" +
" <optional>true</optional> <value>YES</value> </condition> <condition> <conditionConstant>SHARE_WITH_3RD_PARTIES</conditionConstant> <optional>true</optional> <value>YES</value> </condition> <condition> <conditionConstant>RIGHT_TO_OPTOUT</conditionConstant>" +
" <optional>false</optional> <value>YES</value> </condition> <condition> <conditionConstant>DATA_RETENTION_IN_HOURS</conditionConstant> <optional>true</optional> <value>24</value> </condition> </conditions> <optional>false</optional> <resource> <dataType>name</dataType>" +
" <scheme>CONTEXT</scheme> </resource> </requestItem> </responseItem> <responseItem> <decision>PERMIT</decision> <requestItem> <actions class=\"java.util.ArrayList\"> <action> <actionConstant>READ</actionConstant> <optional>false</optional> </action> <action>" +
" <actionConstant>WRITE</actionConstant> <optional>false</optional> </action> <action> <actionConstant>CREATE</actionConstant> <optional>false</optional> </action> <action> <actionConstant>DELETE</actionConstant> <optional>false</optional> </action> </actions> <conditions class=\"java.util.ArrayList\">" +
" <condition> <conditionConstant>SHARE_WITH_CIS_MEMBERS_ONLY</conditionConstant> <optional>true</optional> <value>YES</value> </condition> <condition> <conditionConstant>SHARE_WITH_3RD_PARTIES</conditionConstant> <optional>true</optional> <value>YES</value> </condition> <condition> <conditionConstant>RIGHT_TO_OPTOUT</conditionConstant> <optional>false</optional> <value>YES</value>" +
" </condition> </conditions> <optional>false</optional> <resource> <dataType>SomeDataType</dataType> <scheme>CONTEXT</scheme> </resource> </requestItem> </responseItem> <responseItem> <decision>PERMIT</decision> <requestItem> <actions class=\"java.util.ArrayList\">" +
" <action> <actionConstant>READ</actionConstant> <optional>false</optional> </action> <action> <actionConstant>WRITE</actionConstant> <optional>false</optional> </action> <action> <actionConstant>CREATE</actionConstant> <optional>false</optional> </action>" +
" <action> <actionConstant>DELETE</actionConstant> <optional>false</optional> </action> </actions> <conditions class=\"java.util.ArrayList\"> <condition> <conditionConstant>SHARE_WITH_CIS_MEMBERS_ONLY</conditionConstant> <optional>true</optional> <value>YES</value> </condition> <condition>" +
" <conditionConstant>SHARE_WITH_3RD_PARTIES</conditionConstant> <optional>true</optional> <value>YES</value> </condition> <condition> <conditionConstant>RIGHT_TO_OPTOUT</conditionConstant> <optional>false</optional> <value>YES</value> </condition> </conditions> <optional>false</optional> <resource> <dataType>AnotherDataType</dataType> <scheme>CONTEXT</scheme> </resource>" +
"</requestItem> </responseItem> </responseItems> <negotiationStatus>ONGOING</negotiationStatus> <requestor class=\"org.societies.api.schema.identity.RequestorServiceBean\"> <requestorId>jack.societies.local.macs.hw.ac.uk</requestorId> <requestorServiceId> <serviceInstanceIdentifier>css://eliza@societies.org/HelloEarth</serviceInstanceIdentifier> <identifier class=\"java.net.URI\">css://eliza@societies.org/HelloEarth</identifier> </requestorServiceId> </requestor> </responsePolicy>" +
"<negotiationDetails> <negotiationID>1223</negotiationID> <requestor class=\"org.societies.api.schema.identity.RequestorCisBean\"> <requestorId>jack.societies.local.macs.hw.ac.uk</requestorId> <cisRequestorId>jackCis.societies.local.macs.hw.ac.uk</cisRequestorId> </requestor> </negotiationDetails> </userFeedbackPrivacyNegotiationEvent>";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//GET SIMPLE SERIALISER
Registry registry = new Registry();
Strategy strategy = new RegistryStrategy(registry);
Serializer ser = new Persister(strategy);
try {
registry.bind(java.net.URI.class, URIConverter.class);
} catch (Exception e) {
System.out.println(e.getMessage());
}
Class<?> cl = org.societies.api.internal.schema.useragent.feedback.UserFeedbackPrivacyNegotiationEvent.class;
Object output = null;
try {
output = ser.read(cl, beanXML);
} catch (Exception e) {
System.out.println(e.getMessage());
}
UserFeedbackPrivacyNegotiationEvent bean = (UserFeedbackPrivacyNegotiationEvent)output;
Intent intent = new Intent(this.getApplicationContext(), NegotiationActivity.class);
intent.putExtra(EXTRA_PRIVACY_POLICY, (Parcelable) bean);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}