Skip to content

Commit

Permalink
refactor: introduce CardInfoDestination
Browse files Browse the repository at this point in the history
Removes a dependency on `Android/Context`

To be used in the Card Browser ViewModel as part of a large refactoring
  • Loading branch information
david-allison authored and mikehardy committed Nov 21, 2023
1 parent 651f545 commit 3257b78
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 8 deletions.
4 changes: 3 additions & 1 deletion AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ import com.ichi2.anki.dialogs.tags.TagsDialogFactory
import com.ichi2.anki.dialogs.tags.TagsDialogListener
import com.ichi2.anki.export.ActivityExportingDelegate
import com.ichi2.anki.export.ExportType
import com.ichi2.anki.pages.CardInfo.Companion.toIntent
import com.ichi2.anki.pages.CardInfoDestination
import com.ichi2.anki.preferences.sharedPrefs
import com.ichi2.anki.receiver.SdCardReceiver
import com.ichi2.anki.servicelayer.CardService.selectedNoteIds
Expand Down Expand Up @@ -1182,7 +1184,7 @@ open class CardBrowser :
val selectedCardIds = selectedCardIds
if (selectedCardIds.isNotEmpty()) {
val cardId = selectedCardIds[0]
val intent = com.ichi2.anki.pages.CardInfo.getIntent(this, cardId)
val intent = CardInfoDestination(cardId).toIntent(this)
startActivityWithAnimation(intent, ActivityTransitionAnimation.Direction.FADE)
}
return true
Expand Down
4 changes: 3 additions & 1 deletion AnkiDroid/src/main/java/com/ichi2/anki/Reviewer.kt
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ import com.ichi2.anki.dialogs.ConfirmationDialog
import com.ichi2.anki.dialogs.RescheduleDialog.Companion.rescheduleSingleCard
import com.ichi2.anki.multimediacard.AudioView
import com.ichi2.anki.multimediacard.AudioView.Companion.createRecorderInstance
import com.ichi2.anki.pages.CardInfo.Companion.toIntent
import com.ichi2.anki.pages.CardInfoDestination
import com.ichi2.anki.preferences.sharedPrefs
import com.ichi2.anki.reviewer.*
import com.ichi2.anki.reviewer.AnswerButtons.Companion.getBackgroundColors
Expand Down Expand Up @@ -658,7 +660,7 @@ open class Reviewer :
showSnackbar(getString(R.string.multimedia_editor_something_wrong), Snackbar.LENGTH_SHORT)
return
}
val intent = com.ichi2.anki.pages.CardInfo.getIntent(this, currentCard!!.id)
val intent = CardInfoDestination(currentCard!!.id).toIntent(this)
val animation = getAnimationTransitionFromGesture(fromGesture)
intent.putExtra(FINISH_ANIMATION_EXTRA, getInverseTransition(animation) as Parcelable)
startActivityWithAnimation(intent, animation)
Expand Down
12 changes: 6 additions & 6 deletions AnkiDroid/src/main/java/com/ichi2/anki/pages/CardInfo.kt
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.webkit.WebView
import androidx.core.os.bundleOf
import com.ichi2.anki.R
import com.ichi2.libanki.CardId

class CardInfo : PageFragment() {
override val title = R.string.card_info_title
Expand Down Expand Up @@ -47,11 +49,9 @@ class CardInfo : PageFragment() {
companion object {
private const val ARG_CARD_ID = "cardId"

fun getIntent(context: Context, cardId: Long): Intent {
val arguments = Bundle().apply {
putLong(ARG_CARD_ID, cardId)
}
return PagesActivity.getIntent(context, CardInfo::class, arguments)
}
fun CardInfoDestination.toIntent(context: Context): Intent =
PagesActivity.getIntent(context, CardInfo::class, bundleOf(ARG_CARD_ID to cardId))
}
}

data class CardInfoDestination(val cardId: CardId)

0 comments on commit 3257b78

Please sign in to comment.