Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ import com.ichi2.anki.browser.registerFindReplaceHandler
import com.ichi2.anki.browser.toCardBrowserLaunchOptions
import com.ichi2.anki.common.annotations.NeedsTest
import com.ichi2.anki.common.utils.annotation.KotlinCleanup
import com.ichi2.anki.databinding.CardBrowserBinding
import com.ichi2.anki.databinding.ActivityCardBrowserBinding
import com.ichi2.anki.dialogs.DeckSelectionDialog.DeckSelectionListener
import com.ichi2.anki.dialogs.DiscardChangesDialog
import com.ichi2.anki.dialogs.GradeNowDialog
Expand Down Expand Up @@ -143,7 +143,7 @@ open class CardBrowser :

lateinit var viewModel: CardBrowserViewModel

private lateinit var binding: CardBrowserBinding
private lateinit var binding: ActivityCardBrowserBinding

lateinit var cardBrowserFragment: CardBrowserFragment

Expand All @@ -165,14 +165,14 @@ open class CardBrowser :
}

// Dev option for Issue 18709
// TODO: Broken currently; needs R.layout.card_browser_searchview
// TODO: Broken currently; needs R.layout.activity_card_browser_searchview
val useSearchView: Boolean
get() = Prefs.devUsingCardBrowserSearchView

@Suppress("unused")
@get:LayoutRes
private val layout: Int
get() = if (useSearchView) R.layout.card_browser_searchview else R.layout.card_browser
get() = if (useSearchView) R.layout.activity_card_browser_searchview else R.layout.activity_card_browser

private var onEditCardActivityResult =
registerForActivityResult(StartActivityForResult()) { result: ActivityResult ->
Expand Down Expand Up @@ -295,7 +295,7 @@ open class CardBrowser :
}
tagsDialogFactory = TagsDialogFactory(this).attachToActivity<TagsDialogFactory>(this)
super.onCreate(savedInstanceState)
binding = CardBrowserBinding.inflate(layoutInflater)
binding = ActivityCardBrowserBinding.inflate(layoutInflater)
if (!ensureStoragePermissions()) {
return
}
Expand Down
10 changes: 5 additions & 5 deletions AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,9 @@ import com.ichi2.anki.common.time.TimeManager
import com.ichi2.anki.common.utils.annotation.KotlinCleanup
import com.ichi2.anki.contextmenu.DeckPickerMenuContentProvider
import com.ichi2.anki.contextmenu.MouseContextMenuHandler
import com.ichi2.anki.databinding.ActivityHomescreenBinding
import com.ichi2.anki.databinding.DeckPickerBinding
import com.ichi2.anki.databinding.FloatingAddButtonBinding
import com.ichi2.anki.databinding.HomescreenBinding
import com.ichi2.anki.deckpicker.BITMAP_BYTES_PER_PIXEL
import com.ichi2.anki.deckpicker.BackgroundImage
import com.ichi2.anki.deckpicker.DeckDeletionResult
Expand Down Expand Up @@ -253,7 +253,7 @@ open class DeckPicker :
CollectionPermissionScreenLauncher {
val viewModel: DeckPickerViewModel by viewModels()

private lateinit var binding: HomescreenBinding
private lateinit var binding: ActivityHomescreenBinding

@VisibleForTesting
internal val deckPickerBinding: DeckPickerBinding
Expand Down Expand Up @@ -519,7 +519,7 @@ open class DeckPicker :
// Then set theme and content view
super.onCreate(savedInstanceState)

binding = HomescreenBinding.inflate(layoutInflater)
binding = ActivityHomescreenBinding.inflate(layoutInflater)

// handle the first load: display the app introduction
// This screen is currently better equipped to handle errors than IntroductionActivity
Expand Down Expand Up @@ -2073,7 +2073,7 @@ open class DeckPicker :
/**
* Displays [StudyOptionsFragment] in a side panel on larger devices
*
* @see [HomescreenBinding.studyoptionsFragment]
* @see [ActivityHomescreenBinding.studyoptionsFragment]
*
* @return whether the panel was shown
*/
Expand Down Expand Up @@ -2539,5 +2539,5 @@ private fun AnkiActivity.launchCatchingRequiringOneWaySync(block: suspend () ->
}
}

val HomescreenBinding.studyoptionsFrame: FragmentContainerView?
val ActivityHomescreenBinding.studyoptionsFrame: FragmentContainerView?
get() = studyoptionsFragment
4 changes: 2 additions & 2 deletions AnkiDroid/src/main/java/com/ichi2/anki/FieldEditLine.kt
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,15 @@ import androidx.constraintlayout.widget.ConstraintSet
import androidx.core.os.ParcelCompat
import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat
import com.ichi2.anki.common.utils.annotation.KotlinCleanup
import com.ichi2.anki.databinding.CardMultimediaEditlineBinding
import com.ichi2.anki.databinding.ViewCardMultimediaEditlineBinding
import com.ichi2.compat.setTooltipTextCompat
import com.ichi2.ui.AnimationUtil.collapseView
import com.ichi2.ui.AnimationUtil.expandView
import java.util.Locale

@KotlinCleanup("replace _name with `field`")
class FieldEditLine : FrameLayout {
val binding = CardMultimediaEditlineBinding.inflate(LayoutInflater.from(context), this, true)
val binding = ViewCardMultimediaEditlineBinding.inflate(LayoutInflater.from(context), this, true)
private var _name: String? = null
private var expansionState = ExpansionState.EXPANDED

Expand Down
6 changes: 3 additions & 3 deletions AnkiDroid/src/main/java/com/ichi2/anki/NoteEditorActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import com.ichi2.anki.NoteEditorActivity.Companion.FRAGMENT_ARGS_EXTRA
import com.ichi2.anki.NoteEditorActivity.Companion.FRAGMENT_NAME_EXTRA
import com.ichi2.anki.android.input.ShortcutGroup
import com.ichi2.anki.android.input.ShortcutGroupProvider
import com.ichi2.anki.databinding.NoteEditorBinding
import com.ichi2.anki.databinding.ActivityNoteEditorBinding
import com.ichi2.anki.libanki.Collection
import com.ichi2.anki.noteeditor.NoteEditorFragmentDelegate
import com.ichi2.anki.noteeditor.NoteEditorLauncher
Expand Down Expand Up @@ -85,7 +85,7 @@ class NoteEditorActivity :
val fragmented: Boolean
get() = previewerFrame?.isVisible == true

private lateinit var binding: NoteEditorBinding
private lateinit var binding: ActivityNoteEditorBinding

override fun onCreate(savedInstanceState: Bundle?) {
if (showedActivityFailedScreen(savedInstanceState)) {
Expand All @@ -96,7 +96,7 @@ class NoteEditorActivity :
return
}

binding = NoteEditorBinding.inflate(layoutInflater)
binding = ActivityNoteEditorBinding.inflate(layoutInflater)
setContentView(binding.root)

previewerFrame = binding.previewerFrame
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,17 @@ import com.ichi2.anki.CollectionManager.TR
import com.ichi2.anki.R
import com.ichi2.anki.browser.BrowserColumnSelectionFragment
import com.ichi2.anki.browser.CardBrowserViewModel
import com.ichi2.anki.databinding.BrowserOptionsDialogBinding
import com.ichi2.anki.databinding.DialogBrowserOptionsBinding
import com.ichi2.anki.model.CardsOrNotes
import com.ichi2.utils.create
import com.ichi2.utils.negativeButton
import com.ichi2.utils.positiveButton
import timber.log.Timber

class BrowserOptionsDialog : AppCompatDialogFragment(R.layout.browser_options_dialog) {
class BrowserOptionsDialog : AppCompatDialogFragment(R.layout.dialog_browser_options) {
private val viewModel: CardBrowserViewModel by activityViewModels()

private lateinit var binding: BrowserOptionsDialogBinding
private lateinit var binding: DialogBrowserOptionsBinding

/** The unsaved value of [CardsOrNotes] */
private val dialogCardsOrNotes: CardsOrNotes
Expand Down Expand Up @@ -84,7 +84,7 @@ class BrowserOptionsDialog : AppCompatDialogFragment(R.layout.browser_options_di
}

override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
binding = BrowserOptionsDialogBinding.inflate(layoutInflater)
binding = DialogBrowserOptionsBinding.inflate(layoutInflater)

if (cardsOrNotes == CardsOrNotes.CARDS) {
binding.selectCardsMode.isChecked = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import com.ichi2.anki.R
import com.ichi2.anki.analytics.AnalyticsDialogFragment
import com.ichi2.anki.browser.IdsFile
import com.ichi2.anki.common.annotations.NeedsTest
import com.ichi2.anki.databinding.TagsDialogBinding
import com.ichi2.anki.databinding.DialogTagsBinding
import com.ichi2.anki.launchCatchingTask
import com.ichi2.anki.libanki.NoteId
import com.ichi2.anki.libanki.withCollapsedWhitespace
Expand Down Expand Up @@ -80,7 +80,7 @@ class TagsDialog : AnalyticsDialogFragment {
CUSTOM_STUDY,
}

private lateinit var binding: TagsDialogBinding
private lateinit var binding: DialogTagsBinding
private var type: DialogType? = null
private var tagsArrayAdapter: TagsArrayAdapter? = null
private var toolbarSearchView: AccessibleSearchView? = null
Expand Down Expand Up @@ -175,7 +175,7 @@ class TagsDialog : AnalyticsDialogFragment {
"filled as prefix properly. In other dialog types, long-clicking a tag behaves like a short click.",
)
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
binding = TagsDialogBinding.inflate(layoutInflater)
binding = DialogTagsBinding.inflate(layoutInflater)

val positiveText =
if (type == DialogType.EDIT_TAGS) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope
import com.google.android.material.tabs.TabLayout
import com.ichi2.anki.R
import com.ichi2.anki.databinding.TemplatePreviewerBinding
import com.ichi2.anki.databinding.FragmentTemplatePreviewerBinding
import com.ichi2.anki.launchCatchingTask
import com.ichi2.anki.snackbar.BaseSnackbarBuilderProvider
import com.ichi2.anki.snackbar.SnackbarBuilder
Expand All @@ -36,11 +36,11 @@ import kotlinx.coroutines.flow.onEach
import timber.log.Timber

class TemplatePreviewerFragment :
CardViewerFragment(R.layout.template_previewer),
CardViewerFragment(R.layout.fragment_template_previewer),
BaseSnackbarBuilderProvider {
override val viewModel: TemplatePreviewerViewModel by viewModels()

lateinit var binding: TemplatePreviewerBinding
lateinit var binding: FragmentTemplatePreviewerBinding

override val webViewLayout: SafeWebViewLayout get() = binding.webViewLayout

Expand All @@ -53,7 +53,7 @@ class TemplatePreviewerFragment :
) {
// binding must be set before super.onViewCreated
// as super.onViewCreated depends on webViewLayout, which depends on the binding
binding = TemplatePreviewerBinding.bind(view)
binding = FragmentTemplatePreviewerBinding.bind(view)

super.onViewCreated(view, savedInstanceState)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import android.widget.FrameLayout
import androidx.core.content.withStyledAttributes
import com.google.android.material.color.MaterialColors
import com.ichi2.anki.R
import com.ichi2.anki.databinding.PermissionsItemBinding
import com.ichi2.anki.databinding.ViewPermissionsItemBinding
import com.ichi2.anki.utils.ext.usingStyledAttributes
import com.ichi2.utils.Permissions
import timber.log.Timber
Expand Down Expand Up @@ -54,7 +54,7 @@ class PermissionsItem(
context: Context,
attrs: AttributeSet,
) : FrameLayout(context, attrs) {
val binding = PermissionsItemBinding.inflate(LayoutInflater.from(context), this, true)
val binding = ViewPermissionsItemBinding.inflate(LayoutInflater.from(context), this, true)

/**
* The value of either app:permissions or app:permission.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ import android.view.LayoutInflater
import android.view.animation.DecelerateInterpolator
import androidx.annotation.DrawableRes
import androidx.constraintlayout.widget.ConstraintLayout
import com.ichi2.anki.databinding.AudioPlayViewBinding
import com.ichi2.anki.databinding.ViewAudioPlayBinding

/**
* Simple player with a progress bar, a play button and a cancel button
*/
class AudioPlayView : ConstraintLayout {
private val binding = AudioPlayViewBinding.inflate(LayoutInflater.from(context), this, true)
private val binding = ViewAudioPlayBinding.inflate(LayoutInflater.from(context), this, true)

constructor(context: Context) : this(context, null, 0, 0)
constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0, 0)
Expand Down
10 changes: 5 additions & 5 deletions AnkiDroid/src/main/java/com/ichi2/ui/AxisSelector.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import android.util.AttributeSet
import android.view.LayoutInflater
import android.widget.LinearLayout
import com.ichi2.anki.R
import com.ichi2.anki.databinding.AxisDisplayBinding
import com.ichi2.anki.databinding.ViewAxisDisplayBinding
import com.ichi2.anki.reviewer.Axis
import com.ichi2.anki.reviewer.Binding
import timber.log.Timber
Expand All @@ -30,13 +30,13 @@ import timber.log.Timber
* Displays live values of an [Axis] (joystick/trigger), and allows selection of a binding if an
* [extremity][AxisValueDisplay.isExtremity] has been received
*
* The [axisName][AxisDisplayBinding.axisName] of the Axis (AXIS_X)
* The [axisName][ViewAxisDisplayBinding.axisName] of the Axis (AXIS_X)
*
* The [value] of the Axis [-1, 1]
* - If a value hits an extremity, the display changes color. See [AxisValueDisplay]
*
* Two buttons: [selectMinExtremity][AxisDisplayBinding.selectMinExtremity] and
* [selectMaxExtremity][AxisDisplayBinding.selectMaxExtremity]
* Two buttons: [selectMinExtremity][ViewAxisDisplayBinding.selectMinExtremity] and
* [selectMaxExtremity][ViewAxisDisplayBinding.selectMaxExtremity]
* - If an [extremity][AxisValueDisplay.isExtremity] is reached, these are activated
* - Calls [onExtremitySelectedListener] if tapped
*
Expand All @@ -52,7 +52,7 @@ class AxisSelector : LinearLayout {
defStyle,
)

private val binding = AxisDisplayBinding.inflate(LayoutInflater.from(context), this, true)
private val binding = ViewAxisDisplayBinding.inflate(LayoutInflater.from(context), this, true)

private var onExtremitySelectedListener: ((Binding.AxisButtonBinding) -> Unit)? = null

Expand Down
6 changes: 3 additions & 3 deletions AnkiDroid/src/main/java/com/ichi2/ui/GestureDisplay.kt
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ import com.ichi2.anki.cardviewer.Gesture.TAP_TOP_LEFT
import com.ichi2.anki.cardviewer.Gesture.TAP_TOP_RIGHT
import com.ichi2.anki.cardviewer.GestureListener
import com.ichi2.anki.cardviewer.TapGestureMode
import com.ichi2.anki.databinding.GestureDisplayBinding
import com.ichi2.anki.databinding.ViewGestureDisplayBinding
import com.ichi2.anki.settings.Prefs
import timber.log.Timber

Expand All @@ -59,7 +59,7 @@ class GestureDisplay
attributeSet: AttributeSet? = null,
defStyleAttr: Int = 0,
) : ConstraintLayout(context, attributeSet, defStyleAttr) {
private val binding = GestureDisplayBinding.inflate(LayoutInflater.from(context), this)
private val binding = ViewGestureDisplayBinding.inflate(LayoutInflater.from(context), this)

/** Converts a touch event into a call to [setGesture] */
private val detector: GestureDetector
Expand Down Expand Up @@ -154,7 +154,7 @@ class GestureDisplay
* Maps from a [Gesture] to an [ImageView].
* @return The associated [ImageView], or null if input is null, or isn't a tap gesture
*/
private fun GestureDisplayBinding.tapGestureToView(gesture: Gesture?): ImageView? =
private fun ViewGestureDisplayBinding.tapGestureToView(gesture: Gesture?): ImageView? =
when (gesture) {
TAP_TOP_LEFT -> topLeft
TAP_TOP -> topCenter
Expand Down
8 changes: 8 additions & 0 deletions lint-rules/src/main/java/com/ichi2/anki/lint/IssueRegistry.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,10 @@ import com.android.tools.lint.client.api.IssueRegistry
import com.android.tools.lint.client.api.Vendor
import com.android.tools.lint.detector.api.CURRENT_API
import com.android.tools.lint.detector.api.Issue
import com.ichi2.anki.lint.rules.ActivityLayoutPrefixDetector
import com.ichi2.anki.lint.rules.AvoidAlertDialogUsage
import com.ichi2.anki.lint.rules.CopyrightHeaderExists
import com.ichi2.anki.lint.rules.DialogLayoutPrefixDetector
import com.ichi2.anki.lint.rules.DirectCalendarInstanceUsage
import com.ichi2.anki.lint.rules.DirectDateInstantiation
import com.ichi2.anki.lint.rules.DirectGregorianInstantiation
Expand All @@ -32,6 +34,7 @@ import com.ichi2.anki.lint.rules.DirectSystemTimeInstantiation
import com.ichi2.anki.lint.rules.DirectToastMakeTextUsage
import com.ichi2.anki.lint.rules.DuplicateCrowdInStrings
import com.ichi2.anki.lint.rules.FixedPreferencesTitleLength
import com.ichi2.anki.lint.rules.FragmentLayoutPrefixDetector
import com.ichi2.anki.lint.rules.HardcodedPreferenceKey
import com.ichi2.anki.lint.rules.InvalidStringFormatDetector
import com.ichi2.anki.lint.rules.JUnitNullAssertionDetector
Expand All @@ -42,14 +45,17 @@ import com.ichi2.anki.lint.rules.PrintStackTraceUsage
import com.ichi2.anki.lint.rules.SentenceCaseConventions
import com.ichi2.anki.lint.rules.TranslationTypo
import com.ichi2.anki.lint.rules.VariableNamingDetector
import com.ichi2.anki.lint.rules.ViewLayoutPrefixDetector

class IssueRegistry : IssueRegistry() {
// Keep this list lexicographically ordered.
override val issues: List<Issue>
get() {
// Keep this list lexicographically ordered.
return listOf(
ActivityLayoutPrefixDetector.ISSUE,
CopyrightHeaderExists.ISSUE,
DialogLayoutPrefixDetector.ISSUE,
DirectCalendarInstanceUsage.ISSUE,
DirectDateInstantiation.ISSUE,
DirectGregorianInstantiation.ISSUE,
Expand All @@ -58,6 +64,7 @@ class IssueRegistry : IssueRegistry() {
DirectSystemTimeInstantiation.ISSUE,
DirectToastMakeTextUsage.ISSUE,
DuplicateCrowdInStrings.ISSUE,
FragmentLayoutPrefixDetector.ISSUE,
HardcodedPreferenceKey.ISSUE,
JUnitNullAssertionDetector.ISSUE,
LocaleRootDetector.ISSUE,
Expand All @@ -71,6 +78,7 @@ class IssueRegistry : IssueRegistry() {
FixedPreferencesTitleLength.PREFERENCES_ISSUE_TITLE_LENGTH,
FixedPreferencesTitleLength.MENU_ISSUE_TITLE_LENGTH,
VariableNamingDetector.ISSUE,
ViewLayoutPrefixDetector.ISSUE,
InvalidStringFormatDetector.ISSUE,
AvoidAlertDialogUsage.ISSUE,
)
Expand Down
Loading
Loading