package com.telerik.app.activities;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.telerik.app.R;
import com.telerik.app.model.ImageKind;
import com.telerik.app.tasks.BitmapDownloadTask;
import com.telerik.everlive.sdk.core.result.RequestResult;
import com.telerik.everlive.sdk.core.result.RequestResultCallbackAction;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import com.telerik.app.model.BaseViewModel;
import com.telerik.app.model.MyUser;
import com.telerik.app.model.Post;
public class DetailViewActivity extends Activity implements View.OnClickListener {
private Button deleteButton;
private Post selectedPost;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detail_view);
this.deleteButton = (Button) findViewById(R.id.dv_deleteButton);
this.deleteButton.setOnClickListener(this);
this.updateUI();
getActionBar().hide();
}
private void updateUI() {
this.selectedPost = BaseViewModel.getInstance().getSelectedPost();
final MyUser postedUser = BaseViewModel.getInstance().getUserById(this.selectedPost.getUserId());
MyUser loggedUser = BaseViewModel.getInstance().getLoggedUser();
if (loggedUser == null) {
BaseViewModel.EverliveAPP.workWith().
users(MyUser.class).
getMe().
executeAsync(new RequestResultCallbackAction<MyUser>() {
@Override
public void invoke(RequestResult<MyUser> requestResult) {
if (requestResult.getSuccess()) {
MyUser logUser = requestResult.getValue();
BaseViewModel.getInstance().setLoggedUser(logUser);
if (logUser.getId().equals(postedUser.getId())) {
DetailViewActivity.this.deleteButton.post(new Runnable() {
@Override
public void run() {
DetailViewActivity.this.deleteButton.setVisibility(View.VISIBLE);
}
});
}
}
}
});
} else {
if (loggedUser.getId().equals(postedUser.getId())) {
this.deleteButton.post(new Runnable() {
@Override
public void run() {
deleteButton.setVisibility(View.VISIBLE);
}
});
}
}
BitmapDownloadTask task = new BitmapDownloadTask(this, (ImageView) this.findViewById(R.id.dv_postPicture), ImageKind.Post);
task.execute(this.selectedPost.getPictureId() != null ? this.selectedPost.getPictureId().toString() : null);
BitmapDownloadTask task1 = new BitmapDownloadTask(this, (ImageView) this.findViewById(R.id.dv_userPicture), ImageKind.User);
task1.execute(postedUser.getPictureId() != null ? postedUser.getPictureId().toString() : null);
((TextView) findViewById(R.id.dv_userDisplayName)).setText(postedUser.getDisplayName());
((TextView) findViewById(R.id.dv_postText)).setText(selectedPost.getText());
DateFormat dateFormat = new SimpleDateFormat("MMM dd, yyyy");
((TextView) findViewById(R.id.dv_createdAt)).setText(dateFormat.format(selectedPost.getCreatedAt()).toUpperCase());
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.dv_deleteButton : {
AlertDialog.Builder confirmDialogBuilder = new AlertDialog.Builder(this);
confirmDialogBuilder.setTitle("Confirm delete");
confirmDialogBuilder.setMessage("Are you sure you want to delete this Post?");
confirmDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
BaseViewModel.EverliveAPP.workWith().
data(Post.class).
deleteById(DetailViewActivity.this.selectedPost.getId()).
executeAsync(new RequestResultCallbackAction() {
@Override
public void invoke(RequestResult requestResult) {
if (requestResult.getSuccess()) {
Intent i = new Intent(DetailViewActivity.this, ListActivity.class);
startActivity(i);
}
}
});
}
});
confirmDialogBuilder.setNegativeButton("Cancel", null);
confirmDialogBuilder.create().show();
break;
}
}
}
}