Search in sources :

Example 1 with ReviewerExtRegistry

use of com.ichi2.anki.reviewer.ReviewerExtRegistry in project Anki-Android by Ramblurr.

the class Reviewer method onCreate.

// ----------------------------------------------------------------------------
// ANDROID METHODS
// ----------------------------------------------------------------------------
@Override
protected void onCreate(Bundle savedInstanceState) {
    // Create the extensions as early as possible, so that they can be offered events.
    mExtensions = new ReviewerExtRegistry(getBaseContext());
    Themes.applyTheme(this);
    super.onCreate(savedInstanceState);
    Log.i(AnkiDroidApp.TAG, "Reviewer - onCreate");
    // Remove the status bar and title bar
    if (mPrefFullscreenReview) {
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        // Do not hide the title bar in Honeycomb, since it contains the action bar.
        if (AnkiDroidApp.SDK_VERSION <= 11) {
            requestWindowFeature(Window.FEATURE_NO_TITLE);
        }
    }
    mChangeBorderStyle = Themes.getTheme() == Themes.THEME_ANDROID_LIGHT || Themes.getTheme() == Themes.THEME_ANDROID_DARK;
    // The hardware buttons should control the music volume while reviewing.
    setVolumeControlStream(AudioManager.STREAM_MUSIC);
    Collection col = AnkiDroidApp.getCol();
    if (col == null) {
        reloadCollection(savedInstanceState);
        return;
    } else {
        mSched = col.getSched();
        mCollectionFilename = col.getPath();
        mBaseUrl = Utils.getBaseUrl(col.getMedia().getDir());
        restorePreferences();
        setFullScreen(mPrefFullscreenReview);
        registerExternalStorageListener();
        if (mNightMode) {
            mCurrentBackgroundColor = Themes.getNightModeCardBackground(this);
        } else {
            mCurrentBackgroundColor = Color.WHITE;
        }
        mUseQuickUpdate = shouldUseQuickUpdate();
        initLayout(R.layout.flashcard);
        try {
            String[] title = mSched.getCol().getDecks().current().getString("name").split("::");
            AnkiDroidApp.getCompat().setTitle(this, title[title.length - 1], mInvertedColors);
        } catch (JSONException e) {
            throw new RuntimeException(e);
        }
        AnkiDroidApp.getCompat().setSubtitle(this, "", mInvertedColors);
        if (mPrefTextSelection) {
            clipboardSetText("");
        }
        // Load the template for the card
        try {
            mCardTemplate = Utils.convertStreamToString(getAssets().open("card_template.html"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        // Initialize text-to-speech. This is an asynchronous operation.
        if (mSpeakText) {
            ReadText.initializeTts(this);
            mTTSProgressDialog = new ProgressDialog(this);
            new AsyncTask<String, Void, Void>() {

                @Override
                protected void onPreExecute() {
                    mTTSProgressDialog.setMessage("Init TTS");
                    mTTSProgressDialog.show();
                }

                @Override
                protected Void doInBackground(String... params) {
                    while (ReadText.mTTSInitDone == false) {
                        try {
                            Thread.sleep(500);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                    return null;
                }

                @Override
                protected void onPostExecute(Void res) {
                    mTTSProgressDialog.dismiss();
                    // Load the first card and start reviewing. Uses the answer card
                    // task to load a card, but since we send null
                    // as the card to answer, no card will be answered.
                    DeckTask.launchDeckTask(DeckTask.TASK_TYPE_ANSWER_CARD, mAnswerCardHandler, new DeckTask.TaskData(mSched, null, 0));
                }
            }.execute();
        }
        // Get last whiteboard state
        if (mPrefWhiteboard && mCurrentCard != null && MetaDB.getWhiteboardState(this, mCurrentCard.getDid()) == 1) {
            mShowWhiteboard = true;
            mWhiteboard.setVisibility(View.VISIBLE);
        }
        // Load the first card and start reviewing. Uses the answer card
        // task to load a card, but since we send null
        // as the card to answer, no card will be answered.
        DeckTask.launchDeckTask(DeckTask.TASK_TYPE_ANSWER_CARD, mAnswerCardHandler, new DeckTask.TaskData(mSched, null, 0));
        // Since we aren't actually answering a card, decrement the rep count
        mSched.setReps(mSched.getReps() - 1);
    }
}
Also used : JSONException(org.json.JSONException) SpannedString(android.text.SpannedString) SpannableString(android.text.SpannableString) IOException(java.io.IOException) ProgressDialog(android.app.ProgressDialog) StyledProgressDialog(com.ichi2.themes.StyledProgressDialog) DeckTask(com.ichi2.async.DeckTask) Collection(com.ichi2.libanki.Collection) ReviewerExtRegistry(com.ichi2.anki.reviewer.ReviewerExtRegistry)

Aggregations

ProgressDialog (android.app.ProgressDialog)1 SpannableString (android.text.SpannableString)1 SpannedString (android.text.SpannedString)1 ReviewerExtRegistry (com.ichi2.anki.reviewer.ReviewerExtRegistry)1 DeckTask (com.ichi2.async.DeckTask)1 Collection (com.ichi2.libanki.Collection)1 StyledProgressDialog (com.ichi2.themes.StyledProgressDialog)1 IOException (java.io.IOException)1 JSONException (org.json.JSONException)1