0
0
mirror of https://github.com/ankidroid/Anki-Android.git synced 2024-09-20 12:02:16 +02:00

Merge pull request #564 from timrae/StudyOptionsFragmentCrash

Fix some issues on tablet
This commit is contained in:
Nicolas Raoul 2014-10-23 00:43:34 +09:00
commit 45730b43d0
2 changed files with 25 additions and 12 deletions

View File

@ -828,7 +828,10 @@ public class DeckPicker extends NavigationDrawerActivity implements OnShowcaseEv
m.setData(getIntent().getExtras());
mHandler.sendMessage(m);
}
mShowShowcaseView = true;
if (!mFragmented) {
// Show the showcase view here if normal view, otherwise wait for fragment to finish loading first
mShowShowcaseView = true;
}
AnkiDroidApp.getCompat().invalidateOptionsMenu(this);
// prepare deck counts and mini-today-statistic
loadCounts();
@ -2147,4 +2150,11 @@ public class DeckPicker extends NavigationDrawerActivity implements OnShowcaseEv
mShowcaseDialog.hide();
}
}
public void reloadShowcaseView() {
hideShowcaseView();
mShowShowcaseView = true;
supportInvalidateOptionsMenu();
}
}

View File

@ -288,7 +288,10 @@ public class StudyOptionsFragment extends Fragment implements LoaderManager.Load
// Show the congratulations message if there are no cards scheduled
showCongratsIfNeeded();
dismissCollectionLoadingDialog();
// rebuild action bar so that Showcase works correctly
if (mFragmented) {
((DeckPicker) getActivity()).reloadShowcaseView();
}
}
private void showCongratsIfNeeded() {
@ -362,14 +365,14 @@ public class StudyOptionsFragment extends Fragment implements LoaderManager.Load
@Override
public void onResume() {
super.onResume();
if (AnkiDroidApp.colIsOpen()) {
if (colOpen()) {
if (Utils.now() > getCol().getSched().getDayCutoff()) {
updateValuesFromDeck(true);
} else {
updateValuesFromDeck();
}
showOrHideUnburyButton();
}
showOrHideUnburyButton();
}
@ -596,7 +599,7 @@ public class StudyOptionsFragment extends Fragment implements LoaderManager.Load
styledDialog.setTitle(res.getStringArray(R.array.custom_study_options_labels)[mCustomDialogChoice]);
switch (mCustomDialogChoice + 1) {
case CUSTOM_STUDY_NEW:
if (AnkiDroidApp.colIsOpen()) {
if (colOpen()) {
Collection col = getCol();
mCustomStudyTextView1.setText(res.getString(R.string.custom_study_new_total_new, col
.getSched().totalNewForCurrentDeck()));
@ -608,7 +611,7 @@ public class StudyOptionsFragment extends Fragment implements LoaderManager.Load
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (AnkiDroidApp.colIsOpen()) {
if (colOpen()) {
try {
int n = Integer.parseInt(mCustomStudyEditText.getText().toString());
AnkiDroidApp.getSharedPrefs(getActivity()).edit()
@ -633,7 +636,7 @@ public class StudyOptionsFragment extends Fragment implements LoaderManager.Load
break;
case CUSTOM_STUDY_REV:
if (AnkiDroidApp.colIsOpen()) {
if (colOpen()) {
Collection col = getCol();
mCustomStudyTextView1.setText(res.getString(R.string.custom_study_rev_total_rev, col
.getSched().totalRevForCurrentDeck()));
@ -645,7 +648,7 @@ public class StudyOptionsFragment extends Fragment implements LoaderManager.Load
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (AnkiDroidApp.colIsOpen()) {
if (colOpen()) {
try {
int n = Integer.parseInt(mCustomStudyEditText.getText().toString());
AnkiDroidApp.getSharedPrefs(getActivity()).edit()
@ -832,7 +835,7 @@ public class StudyOptionsFragment extends Fragment implements LoaderManager.Load
private void createFilteredDeck(JSONArray delays, Object[] terms, Boolean resched) {
JSONObject dyn;
if (AnkiDroidApp.colIsOpen()) {
if (colOpen()) {
Collection col = getCol();
try {
String deckName = col.getDecks().current().getString("name");
@ -904,7 +907,7 @@ public class StudyOptionsFragment extends Fragment implements LoaderManager.Load
private void updateValuesFromDeck(boolean reset) {
String fullName;
if (!AnkiDroidApp.colIsOpen()) {
if (!colOpen()) {
return;
}
JSONObject deck = getCol().getDecks().current();
@ -1028,7 +1031,7 @@ public class StudyOptionsFragment extends Fragment implements LoaderManager.Load
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_undo:
if (AnkiDroidApp.colIsOpen()) {
if (colOpen()) {
getCol().undo();
resetAndUpdateValuesFromDeck();
finishCongrats();
@ -1070,7 +1073,7 @@ public class StudyOptionsFragment extends Fragment implements LoaderManager.Load
if (resultCode == DeckPicker.RESULT_MEDIA_EJECTED) {
closeStudyOptions(DeckPicker.RESULT_MEDIA_EJECTED);
} else {
if (!AnkiDroidApp.colIsOpen()) {
if (!colOpen()) {
((AnkiActivity) getActivity()).startLoadingCollection();
mDontSaveOnStop = false;
return;