package moe.chionlab.wechatmomentstat.gui; import android.support.v4.app.NavUtils; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.CheckBox; import android.widget.LinearLayout; import java.util.ArrayList; import moe.chionlab.wechatmomentstat.Model.SnsInfo; import moe.chionlab.wechatmomentstat.Model.UserSnsInfo; import moe.chionlab.wechatmomentstat.R; import moe.chionlab.wechatmomentstat.common.Share; public class UserSelectActivity extends AppCompatActivity { protected boolean isSelectedAll = true; protected ArrayList<CheckBox> checkBoxList = new ArrayList<CheckBox>(); @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.user_select_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: NavUtils.navigateUpFromSameTask(this); return true; case R.id.toggle_select_all_menu_btn: for (int i=0;i<checkBoxList.size();i++) { checkBoxList.get(i).setChecked(!isSelectedAll); } isSelectedAll = !isSelectedAll; return true; case R.id.user_select_done_menu_btn: doneSelectingUsers(); return true; } return super.onOptionsItemSelected(item); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_user_select); getSupportActionBar().setDisplayHomeAsUpEnabled(true); loadUserList(); } protected void loadUserList() { LinearLayout userListContainer = (LinearLayout)findViewById(R.id.user_list_container); ArrayList<UserSnsInfo> userSnsList = Share.snsData.userSnsList; checkBoxList.clear(); userListContainer.removeAllViews(); for (int i=0;i<userSnsList.size();i++) { CheckBox userCheckBox = new CheckBox(this); userCheckBox.setText(userSnsList.get(i).userName + "(" + userSnsList.get(i).userId + ")" + "(" + String.format(getString(R.string.user_moment_count), userSnsList.get(i).snsList.size()) + ")"); userListContainer.addView(userCheckBox); LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams)userCheckBox.getLayoutParams(); layoutParams.setMargins(5, 5, 5, 5); userCheckBox.setLayoutParams(layoutParams); userCheckBox.setChecked(true); userCheckBox.setTag(userSnsList.get(i).userId); checkBoxList.add(userCheckBox); } } protected void doneSelectingUsers() { ArrayList<SnsInfo> snsList = Share.snsData.snsList; for (int i=0;i<snsList.size();i++) { snsList.get(i).selected = getUserCheckBox(snsList.get(i).authorId).isChecked(); } MomentListActivity.snsListUpdated = true; finish(); } protected CheckBox getUserCheckBox(String userId) { for (int i=0;i<checkBoxList.size();i++) { if (checkBoxList.get(i).getTag().equals(userId)) { return checkBoxList.get(i); } } return checkBoxList.get(0); } }