package com.luna.anytime;
import java.util.List;
import com.avos.avoscloud.AVException;
import com.avos.avoscloud.AVObject;
import com.avos.avoscloud.AVQuery;
import com.avos.avoscloud.FindCallback;
import com.avos.avoscloud.SaveCallback;
import com.luna.anytime.adapter.AnytimeUserResponseListAdapter;
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
public class AboutAppActivity extends AnyTimeActivity {
Button submitButton;
EditText submitEditText;
ListView mUserResponseListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about_app);
this.getActionBar().setDisplayHomeAsUpEnabled(true);
submitButton = (Button) findViewById(R.id.button_about_app_submit_user_input);
submitEditText = (EditText) findViewById(R.id.editText_about_app_user_input);
mUserResponseListView = (ListView) findViewById(R.id.listView_user_back);
submitButton.setOnClickListener(buttonListener);
FindCallback<AVObject> findCallback=new FindCallback<AVObject>() {
public void done(List<AVObject> avObjects, AVException e) {
if (e == null) {
Message msg = new Message();
msg.what = 3;
msg.obj = avObjects;
mHandler.sendMessage(msg);
} else {
showError(activity.getString(R.string.network_error));
}
}
};
AVQuery<AVObject> query = new AVQuery<AVObject>("SuggestionByUser");
query.whereEqualTo("UserObjectId", getUserId());
query.findInBackground(findCallback);
}
OnClickListener buttonListener = new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
SaveCallback saveCallback=new SaveCallback() {
@Override
public void done(AVException e) {
if (e == null) {
mHandler.obtainMessage(1).sendToTarget();
} else {
mHandler.obtainMessage(2).sendToTarget();
}
}
};
String advice = submitEditText.getText().toString();
AVService.createAdvice(getUserId(), advice, saveCallback);
}
};
@SuppressLint("HandlerLeak")
private Handler mHandler = new Handler() {
@SuppressWarnings("unchecked")
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
new AlertDialog.Builder(activity)
.setTitle(
activity.getResources().getString(
R.string.dialog_message_success))
.setMessage(
activity.getResources()
.getString(
R.string.action_about_app_submit_message_success))
.setNegativeButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
dialog.dismiss();
submitEditText.setText("");
}
}).show();
break;
case 2:
showError(activity
.getString(R.string.action_about_app_submit_message_error));
break;
case 3:
showResponseList((List<AVObject>) msg.obj);
break;
default:
break;
}
}
};
private void showResponseList(List<AVObject> responseList) {
if (responseList != null && responseList.size() != 0) {
AnytimeUserResponseListAdapter adapter = new AnytimeUserResponseListAdapter(
responseList, activity);
mUserResponseListView.setAdapter(adapter);
mUserResponseListView.setVisibility(View.VISIBLE);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}