package com.liferay.mobile.pushnotifications.activities;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import com.liferay.mobile.android.callback.typed.JSONObjectCallback;
import com.liferay.mobile.android.service.Session;
import com.liferay.mobile.android.v62.ddlrecordset.DDLRecordSetService;
import com.liferay.mobile.pushnotifications.R;
import com.liferay.mobile.screens.base.list.BaseListListener;
import com.liferay.mobile.screens.context.SessionContext;
import com.liferay.mobile.screens.ddl.list.DDLListScreenlet;
import com.liferay.mobile.screens.ddl.model.Record;
import com.liferay.mobile.screens.push.PushScreensActivity;
import com.liferay.mobile.screens.util.LiferayLogger;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.List;
public class WalletActivity extends PushScreensActivity implements BaseListListener<Record> {
private DDLListScreenlet ddlList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wallet);
if (!SessionContext.isLoggedIn()) {
startActivity(new Intent(this, LoginActivity.class));
}
ddlList = (DDLListScreenlet) findViewById(R.id.wallet_default);
ddlList.setListener(this);
}
protected Session getDefaultSession() {
return SessionContext.createSessionFromCurrentSession();
}
@Override
public void onListPageFailed(int startRow, Exception e) {
}
@Override
public void onListPageReceived(int startRow, int endRow, List<Record> entries, int rowCount) {
}
@Override
public void onListItemSelected(Record element, View view) {
loadDDLForm(element);
}
private void loadDDLForm(Record element) {
final Integer recordId = (Integer) (element.getModelValues().get("recordId"));
final Integer recordSetId = (Integer) (element.getModelValues().get("recordSetId"));
try {
Session session = SessionContext.createSessionFromCurrentSession();
session.setCallback(getCallback(recordId, recordSetId));
new DDLRecordSetService(session).getRecordSet(recordSetId);
} catch (Exception e) {
LiferayLogger.e("error loading structure id", e);
}
}
private JSONObjectCallback getCallback(final Integer recordId, final Integer recordSetId) {
return new JSONObjectCallback() {
@Override
public void onSuccess(JSONObject result) {
try {
Intent intent = new Intent(WalletActivity.this, CouponActivity.class);
intent.putExtra("recordId", recordId);
intent.putExtra("recordSetId", recordSetId);
intent.putExtra("structureId", result.getInt("DDMStructureId"));
startActivity(intent);
} catch (JSONException e) {
LiferayLogger.e("error parsing JSON", e);
}
}
@Override
public void onFailure(Exception e) {
LiferayLogger.e("error loading structure id", e);
}
};
}
@Override
protected void onPushNotificationReceived(final JSONObject jsonObject) {
runOnUiThread(new Runnable() {
@Override
public void run() {
LiferayLogger.i("Reloading list...");
ddlList.loadPage(0);
}
});
}
@Override
protected void onErrorRegisteringPush(final String message, final Exception e) {
}
@Override
protected String getSenderId() {
return getString(R.string.sender_id);
}
@Override
public void error(Exception e, String userAction) {
}
}