Skip to content

Commit

Permalink
Merge pull request #156 from magicmychal/develop
Browse files Browse the repository at this point in the history
release 1.4
  • Loading branch information
magicmychal committed Mar 19, 2016
2 parents 3445134 + 4d48758 commit 4c8b170
Show file tree
Hide file tree
Showing 102 changed files with 2,300 additions and 877 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ sc.iml
app/app.iml
Fiszki.iml
/app/build
!/app/build/outputs/apk/




Expand Down
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,14 @@ First, add list of words you need to learn. Then it will show up notification ev
Thanks to our algorithm notification will show you words with less probability that you know that word.
If you need to study faster, use our 'Learning Mode' wich allows you to translate every single word.</p>

<h3><a href="https://play.google.com/store/apps/details?id=eu.qm.fiszki">Fiszki now available on Google Play!</a></h3>

Changelog
v1.4:
<ul><li>Introduced categories</li>
<li>Random lines after answering</li>
<li>Algorithm improvements</li>
<li>Fixed bugs</li></ul>

<h2>Polski:</h2>
<h3>Ucz się słówek szybciej niż kiedykolwiek!</h3>
Expand All @@ -16,6 +23,12 @@ Dzięki aplikacji Fiszki nie trzeba spędzać ani 5 minut na naukę, ponieważ u
Daje to świetne rezultaty i nie zajmuje czasu!
Wszystko co musisz zrobić, to wpisać słowa, których chcesz się nauczyć</p>

Funkcje w wersji v1.4:
<ul><li>Wprowadzenie kategorii oraz zarządzanie nimi</li>
<li>Losowo wyświetlane alerty odpowiedzi</li>
<li>Poprawki błędów</li>
<li>Usprawnienie algorytmu</li></ul>

Funkcje w wersji <a href="http://d-h.st/xl0u">v1.3</a>:
<ul><li>Edycja wprowadzonych słówek</li>
<li>Usuwanie pojedynczych słówek</li>
Expand Down
7 changes: 4 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ apply plugin: 'com.android.application'

android {
compileSdkVersion 'Google Inc.:Google APIs:23'
buildToolsVersion '23.0.2'
buildToolsVersion '23.0.1'

defaultConfig {
applicationId "eu.qm.fiszki"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.3"
versionName "1.4"
}
buildTypes {
release {
Expand All @@ -20,9 +20,10 @@ android {
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile fileTree(dir: 'libs/ORMLite', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:support-v4:23.0.1'
compile 'com.android.support:design:23.0.1'
compile 'com.google.android.gms:play-services-appindexing:8.1.0'
testCompile 'junit:junit:4.12'
}
Binary file removed app/build/outputs/apk/app-debug-unaligned.apk
Binary file not shown.
Binary file removed app/build/outputs/apk/app-debug.apk
Binary file not shown.
12 changes: 6 additions & 6 deletions app/build/outputs/logs/manifest-merger-debug-report.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
-- Merging decision tree log ---
manifest
ADDED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml:2:1-61:12
xmlns:android
ADDED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml:2:11-69
package
ADDED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml:3:5-27
INJECTED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml
INJECTED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml
android:versionName
INJECTED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml
INJECTED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml
xmlns:android
ADDED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml:2:11-69
android:versionCode
INJECTED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml
INJECTED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml
Expand Down Expand Up @@ -53,10 +53,10 @@ ADDED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml:17:9-21:52
ADDED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml:21:13-49
android:label
ADDED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml:19:13-57
android:name
ADDED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml:18:13-51
android:launchMode
ADDED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml:20:13-48
android:name
ADDED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml:18:13-51
receiver#eu.qm.fiszki.AlarmReceiver
ADDED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml:23:9-29:20
android:exported
Expand Down Expand Up @@ -108,10 +108,10 @@ ADDED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml:46:9-49:52
meta-data#com.google.android.gms.version
ADDED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml:51:9-53:69
MERGED from [com.google.android.gms:play-services-basement:8.1.0] D:\RST\Fiszki\app\build\intermediates\exploded-aar\com.google.android.gms\play-services-basement\8.1.0\AndroidManifest.xml:21:9-23:69
android:name
ADDED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml:52:13-58
android:value
ADDED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml:53:13-66
android:name
ADDED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml:52:13-58
activity#eu.qm.fiszki.activity.LearningModeActivity
ADDED from D:\RST\Fiszki\app\src\main\AndroidManifest.xml:55:9-58:52
android:screenOrientation
Expand Down
Binary file not shown.
Binary file not shown.
Binary file added app/libs/ORMLite/ormlite-android-4.48.jar
Binary file not shown.
Binary file added app/libs/ORMLite/ormlite-core-4.48.jar
Binary file not shown.
Binary file not shown.
Binary file not shown.
17 changes: 10 additions & 7 deletions app/src/main/java/eu/qm/fiszki/AlarmReceiver.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,6 @@
import android.support.v7.app.NotificationCompat;

import eu.qm.fiszki.activity.CheckActivity;
import eu.qm.fiszki.activity.SettingsActivity;

import static android.app.AlarmManager.RTC_WAKEUP;

public class AlarmReceiver extends BroadcastReceiver {

Expand All @@ -30,7 +27,7 @@ public void onReceive(Context context, Intent intent) {
Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);
mBuilder.setLargeIcon(icon);
mBuilder.setSmallIcon(R.mipmap.ic_launcher);
mBuilder.setSmallIcon(R.mipmap.ic_stat_f);
mBuilder.setSound(sound);
mBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText(context.getString(R.string.notification_message)));
mBuilder.setContentTitle(context.getString(R.string.notification_title));
Expand All @@ -44,12 +41,18 @@ public void onReceive(Context context, Intent intent) {

}

public void start(AlarmManager manager, Context context, PendingIntent pendingIntent, int sec) {
long time = (1000*60*sec);
public void start(Context context, int min) {
Intent alarmIntent = new Intent(context, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
long time = (1000*60*min);
manager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis()+time, time , pendingIntent);
}

public void close(AlarmManager manager, Context context, PendingIntent pendingIntent) {
public void close(Context context) {
Intent alarmIntent = new Intent(context, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
manager.cancel(pendingIntent);
}

Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/eu/qm/fiszki/Alert.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ public void onClick(DialogInterface dialog, int which) {
alertDialog.show();
}

public void fail(final Context context, String orginalWord, String message,
public void fail(final Context context, String orginalWord, String message,String messageCorrectIs,
String messeageAgain,String title,String nameButton) {
AlertDialog alertDialog;
alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle(title);
alertDialog.setMessage(Html.fromHtml(message + " " + "<b>" + orginalWord + "</b>" + ". " +
alertDialog.setMessage(Html.fromHtml(message + " "+ messageCorrectIs + " " + "<b>\"" + orginalWord + "\"</b>" + ". " +
"\n" + messeageAgain));
alertDialog.setCancelable(false);
alertDialog.setButton(nameButton, new DialogInterface.OnClickListener() {
Expand Down
58 changes: 58 additions & 0 deletions app/src/main/java/eu/qm/fiszki/Algorithm.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package eu.qm.fiszki;

import android.content.Context;

import java.util.ArrayList;
import java.util.Random;

import eu.qm.fiszki.model.Flashcard;
import eu.qm.fiszki.model.FlashcardRepository;

/**
* Created by mBoiler on 11.02.2016.
*/
public class Algorithm {

FlashcardRepository flashcardRepository;

public Algorithm(Context context) {
flashcardRepository = new FlashcardRepository(context);
}

public Flashcard drawCardAlgorithm() {
final int[] points = {25, 20, 15, 10, 5};
int[] totalPoints = new int[5];
int[] section = new int[5];
int drawn = 0;

Flashcard flashcard = null;

for (int i = 0; i < 5; i++) {
ArrayList<Flashcard> flashcardsList = flashcardRepository.getFlashcardsByPriority(i + 1);
int count = flashcardsList.size();
totalPoints[i] = count * points[i];
if (i <= 0) {
section[i] = totalPoints[i];
} else {
section[i] = totalPoints[i] + section[i - 1];
}
}
Random rand = new Random();
drawn = rand.nextInt(section[4]);
drawn += 1;

if (drawn <= section[0]) {
flashcard = flashcardRepository.getRandomFlashcardByPririty(1);
} else if (drawn <= section[1]) {
flashcard = flashcardRepository.getRandomFlashcardByPririty(2);
} else if (drawn <= section[2]) {
flashcard = flashcardRepository.getRandomFlashcardByPririty(3);
} else if (drawn <= section[3]) {
flashcard = flashcardRepository.getRandomFlashcardByPririty(4);
} else if (drawn <= section[4] + 1) {
flashcard = flashcardRepository.getRandomFlashcardByPririty(5);
}

return flashcard;
}
}
129 changes: 129 additions & 0 deletions app/src/main/java/eu/qm/fiszki/CategorySpinnerRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
package eu.qm.fiszki;

import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

import eu.qm.fiszki.model.Category;
import eu.qm.fiszki.model.CategoryRepository;

/**
* Created by mBoiler on 19.02.2016.
*/
public class CategorySpinnerRepository {

private Spinner spinner;
private Context context;
private CategoryRepository categoryRepository;
private EditText categoryName;
private Button addCategoryButton;
private ArrayAdapter<String> dataAdapter;

public CategorySpinnerRepository(Spinner spinner, Context context) {
this.spinner = spinner;
this.context = context;
categoryRepository = new CategoryRepository(context);
}

public int getSelectedCategoryID() {
if (spinner.getSelectedItemPosition() == 0) {
return 1;
}
String categoryNameFromSpinner = spinner.getSelectedItem().toString();
Category category = categoryRepository.getCategoryByName(categoryNameFromSpinner);
return category.getId();
}

public void populate() {
ArrayList<Category> categories = categoryRepository.getAllCategory();
List<String> list = new ArrayList<String>();
int x = 0;
do {
if (categories.get(x).getId() == 1) {
list.add(context.getString(R.string.add_new_word_no_category));
} else if (categories.get(x).getId() == 2) {
list.add(context.getString(R.string.add_new_word_add_category));
} else {
list.add(categories.get(x).getCategory());
}
x++;
} while (x != categories.size());
dataAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_dropdown_item, list);
spinner.setAdapter(dataAdapter);
}

public void setSelectedListener(final Activity activity) {
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (position == 1) {
spinner.setSelection(0);
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.layout_dialog_add_category);
dialog.setTitle(R.string.add_new_word_add_category);

addCategoryButton = (Button) dialog.findViewById(R.id.addCategoryButton);
categoryName = (EditText) dialog.findViewById(R.id.categoryName);

categoryName.postDelayed(new Runnable() {
@Override
public void run() {
InputMethodManager keyboard = (InputMethodManager)
activity.getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.showSoftInput(categoryName, 0);
}
}, 50);

addCategoryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (categoryName.getText().toString().isEmpty()) {
Toast.makeText(context,
context.getString(R.string.alert_message_onEmptyFields),
Toast.LENGTH_LONG).show();
} else if(categoryRepository.getCategoryByName(categoryName.getText().toString())!=null) {
Toast.makeText(context,
context.getString(R.string.add_new_category_exist),
Toast.LENGTH_LONG).show();
}else{
Category category = new Category(categoryName.getText().toString(), true);
categoryRepository.addCategory(category);
Toast.makeText(context,
context.getString(R.string.add_new_category_toast),
Toast.LENGTH_LONG).show();
dialog.dismiss();
populate();
spinner.setSelection(dataAdapter.getPosition(categoryName.getText().toString()));
}
}
});

WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;

dialog.getWindow().setAttributes(lp);
dialog.show();
}
}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}
});
}
}
7 changes: 5 additions & 2 deletions app/src/main/java/eu/qm/fiszki/Checker.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
package eu.qm.fiszki;

/**
* Created by mBoiler on 28.02.2016.
*/
public class Checker {

public Boolean Check(String originalWord,String enteredWord){
if(originalWord.compareTo(enteredWord)== 0) return true;
public boolean check(String originalWord, String enteredWord) {
if (originalWord.compareTo(enteredWord) == 0) return true;
else return false;
}
}
Loading

0 comments on commit 4c8b170

Please sign in to comment.