package wordik.magneto;
import wordik.magneto.db.DataBaseHelper;
import wordik.magneto.db.MSRLang;
import wordik.magneto.db.MSRMeanSemrelXX;
import wordik.magneto.R;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Typeface;
import android.os.Bundle;
import android.text.Html;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.StyleSpan;
import android.text.style.URLSpan;
import android.text.style.UnderlineSpan;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
public class MagnetowordikActivity extends Activity {
private DataBaseHelper db_helper;
private SQLiteDatabase db;
private GameLogic game_logic;
/** The language selected by user for learning. */
private MSRLang xx_lang;
/** All languages in the database. */
private MSRLang[] langs;
TextView word, word_def, word_www; // header (entry), definition (meaning), hyperlink to word in enwikt
TextView[] tv_words;
TextView tv_mark; // estimation and rating of user work
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
db_helper = new DataBaseHelper(this);
db_helper.openDatabase();
db = db_helper.getDB();
langs = MSRLang.getAllLang(db);
String ar_spinner[] = MSRLang.getLangCodeStatistics(langs);
Spinner lang_spinner = (Spinner) findViewById(R.id.spinner_id);
ArrayAdapter<String> adapter = new ArrayAdapter(this,
android.R.layout.simple_spinner_item, ar_spinner);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
lang_spinner.setAdapter(adapter);
lang_spinner.setOnItemSelectedListener(new LangOnItemSelectedListener());
word = (TextView) findViewById(R.id.textView_word);
SpannableString content = new SpannableString("Main word");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
word.setText(content);
word_def = (TextView) findViewById(R.id.textView_word_def);
word_def.setTypeface(null, Typeface.BOLD_ITALIC);
word_def.setText("The definition for underlined word.");
word_www = (TextView) findViewById(R.id.textView_word_www);
//word_def.setTypeface(null, Typeface.BOLD_ITALIC);
//word_def.setText("The definition for underlined word.");
tv_mark = (TextView) findViewById(R.id.textView_mark);
tv_mark.setText("\n1. Select language you want to learn.\n" +
"2. Select one of three words as synonym (antonym) for underlined word.");
tv_words = new TextView[3];
tv_words [0] = (TextView) findViewById(R.id.textView_word_left);
tv_words [1] = (TextView) findViewById(R.id.textView_word_top);
tv_words [2] = (TextView) findViewById(R.id.textView_word_right);
tv_words [0].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
game_logic.clickAndCheckSynonym( (String) tv_words [0].getText());
}});
tv_words [1].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
game_logic.clickAndCheckSynonym( (String) tv_words [1].getText());
}});
tv_words [2].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
game_logic.clickAndCheckSynonym( (String) tv_words [2].getText());
}});
game_logic = new GameLogic(this, db, tv_mark);
}
/** Restart game (visual part). */
public void reStart() {
// underline main word
//word.setText(game_logic.getMainWord());
SpannableString content = new SpannableString(game_logic.getMainWord());
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
word.setText(content);
word_def.setText(game_logic.getMainWordMeaning());
// URL ----------------
//SpannableString ss = new SpannableString("www");
//ss.setSpan(new StyleSpan(Typeface.ITALIC), 0, 6,
//Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//ss.setSpan(new URLSpan(game_logic.getMainWordURL()), 13, 17,
//Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
String ss = "<a href=\""+ game_logic.getMainWordURL() + "\">www</a> ";
word_www.setText( Html.fromHtml(ss));
word_www.setMovementMethod(LinkMovementMethod.getInstance());
// -------------- eo URL
String[] others_words = game_logic.getOtherWords();
tv_words [0].setText(others_words[0]);
tv_words [1].setText(others_words[1]);
tv_words [2].setText(others_words[2]);
}
public class LangOnItemSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
if(0 == pos) // header, not a language
return;
xx_lang = langs[pos-1];
game_logic.setLang(xx_lang);
Toast.makeText(parent.getContext(), "You will learn " + xx_lang.getName() + " words.",
//". Thanks to Wiktionary we have " + xx_lang.getNumberOfSemanticRelations() + " semantic relations to play the game.",
// parent.getItemAtPosition(pos).toString(),
Toast.LENGTH_LONG).show();
game_logic.reStart();
reStart();
tv_mark.setText("");
}
public void onNothingSelected(AdapterView parent) {
// Do nothing.
}
}
}