package com.mistareader; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.EditText; import android.widget.RelativeLayout; import android.widget.ScrollView; import android.widget.Spinner; public class NewTopic_Activity extends Activity { private RelativeLayout RL_Vote; Spinner spinForum; Spinner spinSection; EditText editSubject; EditText editMessage; CheckBox cb_Vote; EditText editVote1; EditText editVote2; EditText editVote3; EditText editVote4; EditText editVote5; Forum forum; @Override protected void onCreate(Bundle savedInstanceState) { ThemesManager.onActivityCreateSetTheme(this); super.onCreate(savedInstanceState); setTitle(R.string.sNewTopic); forum = Forum.getInstance(); RelativeLayout layout = (RelativeLayout) getLayoutInflater().inflate(R.layout.dialog_topic, null); spinForum = (Spinner) layout.findViewById(R.id.spinForum); spinSection = (Spinner) layout.findViewById(R.id.spinSection); ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, forum.forums); spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinForum.setAdapter(spinnerArrayAdapter); spinForum.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { ArrayAdapter<String> spinnerSectArrayAdapter = new ArrayAdapter<String>(NewTopic_Activity.this, android.R.layout.simple_spinner_item, Section .getSectionsListForForum(forum.sections, forum.forums, pos)); spinnerSectArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinSection.setAdapter(spinnerSectArrayAdapter); } @Override public void onNothingSelected(AdapterView<?> arg0) {} }); editSubject = ((EditText) layout.findViewById(R.id.editSubject)); editMessage = ((EditText) layout.findViewById(R.id.editMessage)); editVote1 = ((EditText) layout.findViewById(R.id.tvVote1)); editVote2 = ((EditText) layout.findViewById(R.id.tvVote2)); editVote3 = ((EditText) layout.findViewById(R.id.tvVote3)); editVote4 = ((EditText) layout.findViewById(R.id.tvVote4)); editVote5 = ((EditText) layout.findViewById(R.id.tvVote5)); editSubject.requestFocus(); editSubject.requestFocusFromTouch(); RL_Vote = (RelativeLayout) layout.findViewById(R.id.RL_Votes); cb_Vote = (CheckBox) layout.findViewById(R.id.cb_Vote); Button btnCancel = (Button) layout.findViewById(R.id.dtb_Cancel); Button btnOk = (Button) layout.findViewById(R.id.dtb_OK); OnCheckedChangeListener cb_listener = new onCheckedChangeListener(); cb_Vote.setOnCheckedChangeListener(cb_listener); OnClickListener btnOk_listener = new onOk(); OnClickListener btnCancel_listener = new onCancel(); btnOk.setOnClickListener(btnOk_listener); btnCancel.setOnClickListener(btnCancel_listener); final ScrollView sv = new ScrollView(this); sv.addView(layout); setContentView(sv); } class onOk implements OnClickListener { @Override public void onClick(View arg0) { createNewTopic(); } } private void createNewTopic() { String subject = editSubject.getText().toString().trim(); String message = editMessage.getText().toString().trim(); if (subject.isEmpty()) { ErrorMessage.Show(R.string.sTopicError, NewTopic_Activity.this); return; } if (message.isEmpty()) { ErrorMessage.Show(R.string.sMessageError, NewTopic_Activity.this); return; } boolean isVoting = cb_Vote.isChecked(); String select1 = ""; String select2 = ""; if (isVoting) { select1 = editVote1.getText().toString().trim(); select2 = editVote2.getText().toString().trim(); if (select1.isEmpty() || select2.isEmpty()) { ErrorMessage.Show(R.string.sVoteError, NewTopic_Activity.this); return; } } String forumName = spinForum.getSelectedItem().toString(); String sectionName = spinSection.getSelectedItem().toString(); int k = 0; String sectionIndex = "0"; for (k = 0; k < forum.sections.size(); k++) { Section sect = forum.sections.get(k); if (sect.sectionFullName.equals(sectionName)) { sectionIndex = sect.sectionId; break; } } Intent intent = new Intent(); intent.putExtra("commandName", Forum.COMMAND_CREATE_NEW_TOPIC); intent.putExtra("forumName", forumName); intent.putExtra("sectionIndex", sectionIndex); intent.putExtra("subject", subject); intent.putExtra("message", message); intent.putExtra("isVoting", isVoting); if (isVoting) { intent.putExtra("select1", select1); intent.putExtra("select2", select2); intent.putExtra("select3", editVote3.getText().toString().trim()); intent.putExtra("select4", editVote4.getText().toString().trim()); intent.putExtra("select5", editVote5.getText().toString().trim()); } setResult(RESULT_OK, intent); forceCloseKeyboard(); finish(); } class onCancel implements OnClickListener { @Override public void onClick(View arg0) { Intent intent = new Intent(); setResult(RESULT_CANCELED, intent); finish(); } } private void forceCloseKeyboard() { InputMethodManager inputManager = (InputMethodManager) NewTopic_Activity.this.getSystemService(Context.INPUT_METHOD_SERVICE); View view = NewTopic_Activity.this.getCurrentFocus(); if (view == null) return; inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } class onCheckedChangeListener implements OnCheckedChangeListener { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) RL_Vote.setVisibility(View.VISIBLE); else RL_Vote.setVisibility(View.GONE); } }; @Override public boolean onCreateOptionsMenu(Menu menu) { final MenuItem send = menu.add(R.string.sCreate); send.setIcon(ThemesManager.iconSend); send.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { if(item.getTitle().equals(getString(R.string.sCreate))) { createNewTopic(); return true; } return super.onOptionsItemSelected(item); } }