mirror of
https://github.com/ankidroid/Anki-Android.git
synced 2024-09-20 12:02:16 +02:00
Merge branch 'master' of git://github.com/nicolas-raoul/Anki-Android
This commit is contained in:
commit
3795d432cc
@ -84,6 +84,13 @@
|
||||
android:layout_weight="1.2"
|
||||
android:layout_height="fill_parent"
|
||||
android:text="@string/again" />
|
||||
<Button
|
||||
android:id="@+id/review_early"
|
||||
android:padding="3dip"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_weight="1.2"
|
||||
android:layout_height="fill_parent"
|
||||
android:text="@string/review_early" />
|
||||
<Button
|
||||
android:id="@+id/ease2"
|
||||
android:padding="3dip"
|
||||
|
@ -130,4 +130,5 @@ Please use the <a href="http://ichi2.net/anki/wiki/AndroidAnki">
|
||||
Non-developers can also help, for instance by updating the wiki and screenshots, <a href="http://ichi2.net/anki/donate.html">donating</a> to Anki, or blogging about AnkiDroid!</p>
|
||||
</body>
|
||||
</html></string>
|
||||
<string name="review_early">Review Early</string>
|
||||
</resources>
|
||||
|
@ -171,7 +171,7 @@ public class Ankidroid extends Activity
|
||||
|
||||
private EditText mAnswerField;
|
||||
|
||||
private Button mEase0, mEase1, mEase2, mEase3;
|
||||
private Button mButtonReviewEarly, mEase0, mEase1, mEase2, mEase3;
|
||||
|
||||
private Chronometer mCardTimer;
|
||||
|
||||
@ -247,6 +247,39 @@ public class Ankidroid extends Activity
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
View.OnClickListener mButtonReviewEarlyHandler = new View.OnClickListener()
|
||||
{
|
||||
public void onClick(View view)
|
||||
{
|
||||
Log.i(TAG, "mButtonReviewEarlyHandler");
|
||||
mButtonReviewEarly.setVisibility(View.GONE);
|
||||
Deck d = AnkidroidApp.deck();
|
||||
d.setReviewEarly(true);
|
||||
currentCard = d.getCard();
|
||||
if (currentCard != null){
|
||||
showControls(true);
|
||||
deckLoaded = true;
|
||||
cardsToReview = true;
|
||||
mFlipCard.setChecked(false);
|
||||
displayCardQuestion();
|
||||
|
||||
mWhiteboard.clear();
|
||||
mCardTimer.setBase(SystemClock.elapsedRealtime());
|
||||
mCardTimer.start();
|
||||
long timelimit = AnkidroidApp.deck().getSessionTimeLimit() * 1000;
|
||||
Log.i(TAG, "SessionTimeLimit: " + timelimit + " ms.");
|
||||
mSessionTimeLimit = System.currentTimeMillis() + timelimit;
|
||||
mSessionCurrReps = 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
public static Card getEditorCard () {
|
||||
return editorCard;
|
||||
}
|
||||
@ -351,6 +384,7 @@ public class Ankidroid extends Activity
|
||||
setContentView(layout);
|
||||
|
||||
mCard = (WebView) findViewById(R.id.flashcard);
|
||||
mButtonReviewEarly = (Button) findViewById(R.id.review_early);
|
||||
mEase0 = (Button) findViewById(R.id.ease1);
|
||||
mEase1 = (Button) findViewById(R.id.ease2);
|
||||
mEase2 = (Button) findViewById(R.id.ease3);
|
||||
@ -363,6 +397,7 @@ public class Ankidroid extends Activity
|
||||
|
||||
showControls(false);
|
||||
|
||||
mButtonReviewEarly.setOnClickListener(mButtonReviewEarlyHandler);
|
||||
mEase0.setOnClickListener(mSelectEaseHandler);
|
||||
mEase1.setOnClickListener(mSelectEaseHandler);
|
||||
mEase2.setOnClickListener(mSelectEaseHandler);
|
||||
@ -628,6 +663,7 @@ public class Ankidroid extends Activity
|
||||
} else
|
||||
{
|
||||
mCard.setVisibility(View.GONE);
|
||||
mButtonReviewEarly.setVisibility(View.GONE);
|
||||
mEase0.setVisibility(View.GONE);
|
||||
mEase1.setVisibility(View.GONE);
|
||||
mEase2.setVisibility(View.GONE);
|
||||
@ -694,6 +730,7 @@ public class Ankidroid extends Activity
|
||||
// Either the deck does not contain any card, or all reviews have been done for the time being
|
||||
// TODO a button leading to the deck picker would be nice.
|
||||
updateCard(getString(R.string.congratulations_finished_for_now));
|
||||
mButtonReviewEarly.setVisibility(View.VISIBLE);
|
||||
mEase0.setVisibility(View.GONE);
|
||||
mEase1.setVisibility(View.GONE);
|
||||
mEase2.setVisibility(View.GONE);
|
||||
|
@ -565,7 +565,9 @@ public class Deck
|
||||
}
|
||||
|
||||
private long getCardIdAhead() {
|
||||
long id = AnkiDb.queryScalar(
|
||||
long id=0;
|
||||
try {
|
||||
id = AnkiDb.queryScalar(
|
||||
"SELECT id " +
|
||||
"FROM cards " +
|
||||
"WHERE type = 1 and " +
|
||||
@ -573,6 +575,9 @@ public class Deck
|
||||
"priority in (1,2,3,4) " +
|
||||
"ORDER BY combinedDue " +
|
||||
"LIMIT 1");
|
||||
} catch (SQLException e) {
|
||||
return 0;
|
||||
}
|
||||
return id;
|
||||
}
|
||||
|
||||
@ -1406,6 +1411,16 @@ public class Deck
|
||||
setUndoStart(name, false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param reviewEarly set to true for early review
|
||||
*/
|
||||
public void setReviewEarly(boolean reviewEarly) {
|
||||
this.reviewEarly = reviewEarly;
|
||||
}
|
||||
|
||||
public void setUndoStart(String name, boolean merge)
|
||||
{
|
||||
if (!undoEnabled)
|
||||
|
29
tools/update-localizations.py
Normal file
29
tools/update-localizations.py
Normal file
@ -0,0 +1,29 @@
|
||||
import os
|
||||
import zipfile
|
||||
|
||||
# This script extract localization from ankidroid.zip into the right folders.
|
||||
# http://crowdin.net/download/project/ankidroid.zip
|
||||
|
||||
# TODO
|
||||
# Add GNU-GPL header to files
|
||||
# Insert 0,1,2,3,4,5 values that are missing from Crowdin
|
||||
|
||||
# Below is the list of official AnkiDroid localizations.
|
||||
# Add a language if it is more than 50% translated.
|
||||
languages = ['pt-PT', 'fr', 'ru', 'ca', 'es-ES', 'el'];
|
||||
|
||||
|
||||
zip = zipfile.ZipFile("ankidroid.zip", "r")
|
||||
|
||||
for language in languages:
|
||||
androidLanguage = language[:2] # Example: pt-PT becomes pt
|
||||
valuesDirectory = "../res/values-" + androidLanguage + "/"
|
||||
|
||||
# Create directory if it does not exist yet.
|
||||
if not os.path.isdir(valuesDirectory):
|
||||
os.mkdir(valuesDirectory)
|
||||
|
||||
# Copy localization files
|
||||
file(valuesDirectory + 'arrays.xml', 'w').write(zip.read(language + "/arrays.xml"))
|
||||
file(valuesDirectory + 'strings.xml', 'w').write(zip.read(language + "/strings.xml"))
|
||||
|
Loading…
Reference in New Issue
Block a user