package info.justaway.fragment;
import android.app.Activity;
import android.app.Dialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ListView;
import android.widget.ProgressBar;
import info.justaway.R;
import info.justaway.adapter.UserAdapter;
import info.justaway.model.TwitterManager;
import info.justaway.util.MessageUtil;
import twitter4j.ResponseList;
import twitter4j.Status;
import twitter4j.Twitter;
/**
* リツイートを表示
*
* @author aska
*/
public class RetweetersFragment extends DialogFragment {
private ProgressBar mProgressBar;
private UserAdapter mAdapter;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Activity activity = getActivity();
Dialog dialog = new Dialog(activity);
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
dialog.setContentView(R.layout.fragment_retweeters);
ListView listView = (ListView) dialog.findViewById(R.id.list);
mProgressBar = (ProgressBar) dialog.findViewById(R.id.guruguru);
mAdapter = new UserAdapter(activity, R.layout.row_user);
listView.setAdapter(mAdapter);
Long statusId = getArguments().getLong("statusId");
if (statusId > 0) {
new RetweetsTask().execute(statusId);
}
return dialog;
}
private class RetweetsTask extends AsyncTask<Long, Void, ResponseList<Status>> {
public RetweetsTask() {
super();
}
@Override
protected ResponseList<twitter4j.Status> doInBackground(Long... params) {
try {
Twitter twitter = TwitterManager.getTwitter();
return twitter.getRetweets(params[0]);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
protected void onPostExecute(ResponseList<twitter4j.Status> statuses) {
mProgressBar.setVisibility(View.GONE);
if (statuses != null) {
for (twitter4j.Status status : statuses) {
mAdapter.add(status.getUser());
}
mAdapter.notifyDataSetChanged();
} else {
MessageUtil.showToast(R.string.toast_load_data_failure);
}
}
}
}