package it.demo.twitterlike.android.ui;
import it.demo.twitterlike.android.domain.InternalUserProfile;
import it.demo.twitterlike.android.tasks.AddFollowTask;
import it.demo.twitterlike.android.tasks.FollowedListTask;
import it.demo.twitterlike.android.tasks.RemoveFollowTask;
import it.demo.twitterlike.android.ui.adapters.UserListAdapter;
import java.util.ArrayList;
import java.util.Collection;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import com.telly.groundy.Groundy;
import com.telly.groundy.annotations.OnStart;
import com.telly.groundy.annotations.OnSuccess;
import com.telly.groundy.annotations.Param;
public class FollowActivity extends AbstractAsyncActivity {
private UserListAdapter adapter;
private View noUsersPresentView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_follow);
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setTitle(R.string.activity_select_users_title);
if (adapter == null) {
adapter = new UserListAdapter(this,
new ArrayList<InternalUserProfile>());
}
this.noUsersPresentView = findViewById(R.id.noMessagesPresentTextView);
ListView listView = (ListView) findViewById(android.R.id.list);
listView.setAdapter(adapter);
requestUpdate(true);
}
public void requestUpdate(boolean showProgressBar) {
if (showProgressBar) {
showProgressDialog("Caricamento Configurazione In Corso");
}
Groundy.create(FollowedListTask.class).callback(this)
.callbackManager(callbacksManager).queueUsing(this);
}
@OnStart({ AddFollowTask.class, RemoveFollowTask.class,
FollowedListTask.class })
public void onProgress() {
showProgressDialog(getString(R.string.progressbar_loading));
}
@OnSuccess({ AddFollowTask.class })
public void followAdded() {
makeToastText(R.string.toast_follow_created);
doFinishAndReturn();
}
@OnSuccess({ RemoveFollowTask.class })
public void followRemoved() {
makeToastText(R.string.toast_follow_removed);
doFinishAndReturn();
}
protected void doFinishAndReturn() {
setResult(RESULT_OK);
finish();
}
@OnSuccess({ FollowedListTask.class })
public void updateResultList(
@Param(FollowedListTask.ALLUSERS_RESULT) Collection<InternalUserProfile> result) {
dismissProgressDialog();
adapter.clear();
if (result != null) {
adapter.addAll(result);
}
noUsersPresentView
.setVisibility(result == null || result.size() <= 0 ? View.VISIBLE
: View.GONE);
adapter.notifyDataSetChanged();
}
public static void show(Activity context, int requestCode) {
final Intent intent = new Intent(context, FollowActivity.class);
context.startActivityForResult(intent, requestCode);
}
}