package info.justaway; import android.annotation.SuppressLint; import android.app.ActionBar; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.LoaderManager; import android.support.v4.content.Loader; import android.view.Menu; import android.view.MenuItem; import android.widget.ListView; import java.util.ArrayList; import java.util.HashMap; import info.justaway.adapter.RegisterListAdapter; import info.justaway.model.UserListWithRegistered; import info.justaway.task.RegisterUserListsLoader; import info.justaway.util.ThemeUtil; import twitter4j.ResponseList; import twitter4j.UserList; public class RegisterUserListActivity extends FragmentActivity implements LoaderManager.LoaderCallbacks<ArrayList<ResponseList<UserList>>> { private RegisterListAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ThemeUtil.setTheme(this); setContentView(R.layout.list); ActionBar actionBar = getActionBar(); if (actionBar != null) { actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); } ListView listView = (ListView) findViewById(R.id.list); Intent intent = getIntent(); Bundle args = new Bundle(1); args.putLong("userId", intent.getLongExtra("userId", -1)); mAdapter = new RegisterListAdapter(this, R.layout.row_subscribe_user_list, intent.getLongExtra("userId", -1)); listView.setAdapter(mAdapter); getSupportLoaderManager().initLoader(0, args, this); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.register_list, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: finish(); break; case R.id.create_user_list: Intent intent = new Intent(this, CreateUserListActivity.class); startActivity(intent); break; } return true; } @Override public Loader<ArrayList<ResponseList<UserList>>> onCreateLoader(int arg0, Bundle arg1) { return new RegisterUserListsLoader(this, arg1.getLong("userId")); } @Override @SuppressLint("UseSparseArrays") public void onLoadFinished(Loader<ArrayList<ResponseList<UserList>>> arg0, ArrayList<ResponseList<UserList>> responseLists) { if (responseLists == null) { return; } ResponseList<UserList> userLists = responseLists.get(0); ResponseList<UserList> registeredUserLists = responseLists.get(1); HashMap<Long, Boolean> registeredMap = new HashMap<Long, Boolean>(); for (UserList registeredUserList : registeredUserLists) { registeredMap.put(registeredUserList.getId(), true); } for (UserList userList : userLists) { UserListWithRegistered userListWithRegistered = new UserListWithRegistered(); userListWithRegistered.setRegistered(registeredMap.get(userList.getId()) != null); userListWithRegistered.setUserList(userList); mAdapter.add(userListWithRegistered); } } @Override public void onLoaderReset(Loader<ArrayList<ResponseList<UserList>>> arg0) { } }