0
0
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:
Edu Zamora 2010-04-15 12:57:25 +02:00
commit 3795d432cc
5 changed files with 91 additions and 2 deletions

View File

@ -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"

View File

@ -130,4 +130,5 @@ Please use the &lt;a href=&quot;http://ichi2.net/anki/wiki/AndroidAnki&quot;&gt;
Non-developers can also help, for instance by updating the wiki and screenshots, &lt;a href=&quot;http://ichi2.net/anki/donate.html&quot;&gt;donating&lt;/a&gt; to Anki, or blogging about AnkiDroid!&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</string>
<string name="review_early">Review Early</string>
</resources>

View File

@ -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);

View File

@ -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)

View 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"))