Skip to content

Commit

Permalink
updated apk to version 2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
uberspot committed Nov 3, 2013
1 parent de29e5f commit 2a26820
Show file tree
Hide file tree
Showing 8 changed files with 59 additions and 36 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -13,3 +13,4 @@
!.classpath
!screenshots/
!project.properties
!AnagramSolver.apk*
Binary file added AnagramSolver.apk
Binary file not shown.
1 change: 1 addition & 0 deletions AnagramSolver.apk.sha1
@@ -0,0 +1 @@
c7cec610045f5aa2d522ab3ed68ccadc7ba1272c AnagramSolver.apk
Binary file added AnagramSolver.apk.sig
Binary file not shown.
4 changes: 2 additions & 2 deletions AndroidManifest.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.as.anagramsolver"
android:versionCode="10"
android:versionName="1.9"
android:versionCode="11"
android:versionName="2.0"
android:installLocation="auto" >

<uses-sdk
Expand Down
11 changes: 5 additions & 6 deletions res/values/strings.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:xliff="rn:oasis:names:tc:xliff:document:1.2">

<string name="app_name">AnagramSolver</string>
<string name="action_settings">Settings</string>
Expand All @@ -12,12 +12,11 @@
<string name="search_substrings">Search for substring anagrams</string>
<string name="stop_search">Stop search!</string>
<string name="search_ended">Search ended</string>
<string name="matches">Matches</string>
<string name="no_input_given">No input given</string>
<string name="matches">Matches <xliff:g id="num" example="10" >(%1$s):\n</xliff:g></string>
<string name="no_input_given">No input given<xliff:g>&#8230;</xliff:g></string>
<string name="dict_not_loaded">Selected Dictionary not loaded</string>
<string name="searching_please_wait">Searching. Please wait</string>
<string name="searching_please_wait">Searching. Please wait<xliff:g>&#8230;</xliff:g> </string>
<string name="please_wait">Please wait</string>
<string name="populating_dbs">Populating sqlite databases</string>
<string name="this_might_take">This might take 3 to 10 minutes depending on the enabled languages</string>
<string name="populating_dbs">Populating <xliff:g id="name" example="language" >%1$s</xliff:g> database. \nThis might take 3 to 10 minutes.</string>

</resources>
15 changes: 15 additions & 0 deletions res/xml/changelog_master.xml
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<changelog>
<release version="2.0" versioncode="11" >
<change>Added changelog</change>
<change>Added support for android 4.4</change>
<change>Added German dictionary</change>
<change>Cleaned up code a lot and fixed various minor bugs</change>
</release>
<release version="1.9" versioncode="10" >
<change>Made compatible with android 2.2 + (added sherlockactionbar)</change>
<change>Added "stop search" button</change>
<change>Minor fixes + code cleanup</change>
<change>Keyboard hides automatically when search begins</change>
</release>
</changelog>
63 changes: 35 additions & 28 deletions src/com/as/anagramsolver/StartPage.java
Expand Up @@ -8,6 +8,8 @@
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;

import de.cketti.library.changelog.ChangeLog;

import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
Expand Down Expand Up @@ -40,9 +42,9 @@

public class StartPage extends SherlockActivity {

private static final String LANG_SEL_KEY = "languageSelected";
private static final String SEARCH_SUBSTR_KEY = "searchSubstrings";
private static final String LANG_ENABLED_KEY = "languagesEnabled";
private static final String LANG_SEL_KEY = "langSelected";
private static final String SEARCH_SUBSTR_KEY = "searchSubstr";
private static final String LANG_ENABLED_KEY = "langEnabled";
private DictionaryDBCreator dbCreator;
private String languageSelected;
private StorageUtils storage;
Expand All @@ -66,13 +68,11 @@ public class StartPage extends SherlockActivity {
*/
class DBLoaderTask extends AsyncTask<String, String, String> {
private ProgressDialog mProgressDialog;
private String progressMessage = getString(R.string.populating_dbs) + ". \n" +
getString(R.string.this_might_take) + "...";

@Override
protected void onPreExecute() {
mProgressDialog = ProgressDialog.show(StartPage.this,
getString(R.string.please_wait), progressMessage, true, false);
getString(R.string.please_wait), getString(R.string.populating_dbs) , true, false);
}

protected String doInBackground(String... strings) {
Expand All @@ -98,7 +98,7 @@ protected void onPostExecute(String result) {

@Override
public void onProgressUpdate(String... args){
mProgressDialog.setMessage(progressMessage + " Loading " + args[0]);
mProgressDialog.setMessage(getString(R.string.populating_dbs, args[0]));
}
}

Expand All @@ -109,7 +109,7 @@ class DBSearchTask extends AsyncTask<String, Void, String> {

@Override protected void onPreExecute() {
searching = true;
Toast.makeText(getApplicationContext(), getString(R.string.searching_please_wait) + "...", Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), getString(R.string.searching_please_wait), Toast.LENGTH_SHORT).show();
}

protected String doInBackground(String... strings) {
Expand All @@ -130,7 +130,7 @@ protected void onPostExecute(String result) {
}

protected void onProgressUpdate(Void... values) {
output.setText(getString(R.string.matches) + " (" + words.length + "):\n");
output.setText(getString(R.string.matches, words.length ));

//UpdateListview
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),
Expand All @@ -142,7 +142,7 @@ protected void onProgressUpdate(Void... values) {
protected void onCancelled() {
searching = false;
searchButton.setText(getString(R.string.search_words));
Toast.makeText(getApplicationContext(), getString(R.string.search_ended), Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), getString(R.string.search_ended), Toast.LENGTH_SHORT).show();
}

/** Searches for anagrams with all the words that can be formed from the given letters in value and from all the subsets of those letters
Expand All @@ -167,9 +167,12 @@ private void searchAllMatchingAnagrams(String dict, String value) {
pos--;
}
if(str.length()>3) {
matchingWords.addAll( dbCreator.getMatchingAnagrams(dict, str.toString()) );
words = matchingWords.toArray(new String[matchingWords.size()]);
publishProgress();
Set<String> tempSet = dbCreator.getMatchingAnagrams(dict, str.toString());
if(!tempSet.isEmpty()) {
matchingWords.addAll(tempSet);
words = matchingWords.toArray(new String[matchingWords.size()]);
publishProgress();
}
}
if(isCancelled()) {
break;
Expand All @@ -186,6 +189,12 @@ protected void onCreate(Bundle savedInstanceState) {
//getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
storage = new StorageUtils(getApplicationContext());

// Show changelog if it's the first time a new version loads
ChangeLog cl = new ChangeLog(this);
if (cl.isFirstRun()) {
cl.getLogDialog().show();
}

// Load previously selected language from preferences
languageSelected = storage.getPreference(LANG_SEL_KEY, DictionaryDBCreator.DEFAULT_DICTIONARY);

Expand Down Expand Up @@ -228,17 +237,18 @@ public boolean onItemLongClick(AdapterView<?> lView, View v,
.getBoolean(SEARCH_SUBSTR_KEY, true));
searchSubstrings.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit();
editor.putBoolean(SEARCH_SUBSTR_KEY, searchSubstrings.isChecked());
editor.putBoolean(SEARCH_SUBSTR_KEY, isChecked);
editor.commit();
}});
//Initialize the database
dbCreator = new DictionaryDBCreator(getApplicationContext());
// Load enabled languages from preferences

dbCreator.setEnabledDictionaries(
storage.getPreferenceSet(LANG_ENABLED_KEY, new HashSet<String>(Arrays.asList(new String[] { DictionaryDBCreator.DEFAULT_DICTIONARY })))
storage.getPreferenceSet(LANG_ENABLED_KEY,
new HashSet<String>(Arrays.asList(new String[] { DictionaryDBCreator.DEFAULT_DICTIONARY })))
);
new DBLoaderTask().execute();

Expand All @@ -259,7 +269,7 @@ public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
languageSelected = (String) parent.getItemAtPosition(pos);
//Save change in preferences
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit();
editor.putString(LANG_SEL_KEY, languageSelected.toString());
editor.putString(LANG_SEL_KEY, languageSelected);
editor.commit();
}
public void onNothingSelected(AdapterView<?> arg0) {}
Expand All @@ -273,7 +283,7 @@ public void onNothingSelected(AdapterView<?> arg0) {}
private int getSelectedLanguage(String[] values) {
int i=0;
for(; i<values.length; i++){
if(values[i].equalsIgnoreCase(languageSelected.toString()))
if(values[i].equalsIgnoreCase(languageSelected))
return i;
}
return 0;
Expand All @@ -300,7 +310,7 @@ public void onSearchButtonClick() {
dbSearchTask = new DBSearchTask();
dbSearchTask.execute();
} else {
Toast.makeText(getApplicationContext(), getString(R.string.no_input_given) + "...", Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), getString(R.string.no_input_given), Toast.LENGTH_SHORT).show();
}
} else {
hideSoftKeyboard();
Expand Down Expand Up @@ -334,19 +344,16 @@ private void showLanguageSelection(){
// Find which language checkboxes should be checked based on the languagesEnabled set
int dictionariesSize = DictionaryDBCreator.DICTIONARIES.size();
boolean[] checkedLanguages = new boolean[dictionariesSize];
for(int i=0; i<checkedLanguages.length; i++) {
if(dbCreator.hasLoadedDictionary(DictionaryDBCreator.DICTIONARIES.get(i))){
String[] langs = new String[dictionariesSize];
for(int i=0; i < checkedLanguages.length; i++) {
langs[i] = DictionaryDBCreator.DICTIONARIES.get(i);
if(dbCreator.hasLoadedDictionary(langs[i])){
checkedLanguages[i] = true;
} else {
checkedLanguages[i] = false;
}
}

String[] langs = new String[dictionariesSize];
for(int i=0; i < dictionariesSize; i++) {
langs[i] = DictionaryDBCreator.DICTIONARIES.get(i);
}

AlertDialog.Builder builder = new AlertDialog.Builder(this);
// Set the dialog title
builder.setTitle(R.string.choose_enabled_languages)
Expand All @@ -355,8 +362,7 @@ private void showLanguageSelection(){
.setMultiChoiceItems(langs, checkedLanguages,
new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which,
boolean isChecked) {
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
String checkedLang = DictionaryDBCreator.DICTIONARIES.get(which);
if (isChecked) {
// If the user checked the item, add it to the selected items
Expand All @@ -376,6 +382,7 @@ public void onClick(DialogInterface dialog, int id) {

// Update spinner language list
setupSpinner();

//Update dictionary tables in database
new DBLoaderTask().execute();
}
Expand Down

0 comments on commit 2a26820

Please sign in to comment.