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
52 changes: 23 additions & 29 deletions AnkiDroid/src/main/java/com/ichi2/anki/NoteEditorFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,6 @@ import com.ichi2.anki.OnContextAndLongClickListener.Companion.setOnContextAndLon
import com.ichi2.anki.android.input.ShortcutGroup
import com.ichi2.anki.android.input.ShortcutGroupProvider
import com.ichi2.anki.android.input.shortcut
import com.ichi2.anki.bottomsheet.ImageOcclusionBottomSheetFragment
import com.ichi2.anki.common.annotations.NeedsTest
import com.ichi2.anki.common.utils.annotation.KotlinCleanup
import com.ichi2.anki.dialogs.ConfirmationDialog
Expand Down Expand Up @@ -241,8 +240,11 @@ class NoteEditorFragment :
internal var noteTypeSpinner: Spinner? = null
private var deckSpinnerSelection: DeckSpinnerSelection? = null
private var imageOcclusionButtonsContainer: LinearLayout? = null
private var selectImageForOcclusionButton: Button? = null
private var editOcclusionsButton: Button? = null
private var imageSelectionForOcclusionContainer: LinearLayout? = null
private var imageSelectionForOcclusionLabel: TextView? = null
private var cameraForOcclusionButton: Button? = null
private var galleryForOcclusionButton: Button? = null
private var pasteOcclusionImageButton: Button? = null

// non-null after onCollectionLoaded
Expand Down Expand Up @@ -702,7 +704,10 @@ class NoteEditorFragment :
}
imageOcclusionButtonsContainer = requireView().findViewById(R.id.ImageOcclusionButtonsLayout)
editOcclusionsButton = requireView().findViewById(R.id.EditOcclusionsButton)
selectImageForOcclusionButton = requireView().findViewById(R.id.SelectImageForOcclusionButton)
imageSelectionForOcclusionContainer = requireView().findViewById(R.id.ImageSelectionForOcclusionContainer)
imageSelectionForOcclusionLabel = requireView().findViewById(R.id.ImageSelectionForOcclusionLabel)
cameraForOcclusionButton = requireView().findViewById<Button>(R.id.CameraForOcclusionButton)
galleryForOcclusionButton = requireView().findViewById<Button>(R.id.GalleryForOcclusionButton)
pasteOcclusionImageButton = requireView().findViewById(R.id.PasteImageForOcclusionButton)

try {
Expand Down Expand Up @@ -761,33 +766,23 @@ class NoteEditorFragment :

if (addNote) {
editOcclusionsButton?.visibility = View.GONE
selectImageForOcclusionButton?.setOnClickListener {
Timber.i("selecting image for occlusion")
val imageOcclusionBottomSheet = ImageOcclusionBottomSheetFragment()
imageOcclusionBottomSheet.listener =
object : ImageOcclusionBottomSheetFragment.ImagePickerListener {
override fun onCameraClicked() {
Timber.i("onCameraClicked")
dispatchCameraEvent()
}

override fun onGalleryClicked() {
Timber.i("onGalleryClicked")
try {
ioEditorLauncher.launch("image/*")
} catch (_: ActivityNotFoundException) {
Timber.w("No app found to handle onGalleryClicked request")
activity?.showSnackbar(R.string.activity_start_failed)
}
}
}
imageOcclusionBottomSheet.show(
parentFragmentManager,
"ImageOcclusionBottomSheetFragment",
)
imageSelectionForOcclusionLabel?.text = TR.notetypesImage() + ":"

cameraForOcclusionButton?.setOnClickListener {
Timber.i("Camera button clicked")
dispatchCameraEvent()
}

pasteOcclusionImageButton?.text = TR.notetypesIoPasteImageFromClipboard()
galleryForOcclusionButton?.setOnClickListener {
Timber.i("Gallery button clicked")
try {
ioEditorLauncher.launch("image/*")
} catch (_: ActivityNotFoundException) {
Timber.w("No app found to handle onGalleryClicked request")
activity?.showSnackbar(R.string.activity_start_failed)
}
}
pasteOcclusionImageButton?.setOnClickListener {
// TODO: Support all extensions
// See https://github.com/ankitects/anki/blob/6f3550464d37aee1b8b784e431cbfce8382d3ce7/rslib/src/image_occlusion/imagedata.rs#L154
Expand All @@ -806,8 +801,7 @@ class NoteEditorFragment :
}
}
} else {
selectImageForOcclusionButton?.visibility = View.GONE
pasteOcclusionImageButton?.visibility = View.GONE
imageSelectionForOcclusionContainer?.visibility = View.GONE
editOcclusionsButton?.visibility = View.VISIBLE
editOcclusionsButton?.text = resources.getString(R.string.edit_occlusions)
editOcclusionsButton?.setOnClickListener {
Expand Down

This file was deleted.

73 changes: 0 additions & 73 deletions AnkiDroid/src/main/res/layout/image_occlusion_options_layout.xml

This file was deleted.

55 changes: 43 additions & 12 deletions AnkiDroid/src/main/res/layout/note_editor_fragment.xml
Original file line number Diff line number Diff line change
Expand Up @@ -92,22 +92,53 @@
android:layout_height="wrap_content"
android:text="@string/edit_occlusions" />

<com.google.android.material.button.MaterialButton
android:id="@+id/SelectImageForOcclusionButton"
<LinearLayout
android:id="@+id/ImageSelectionForOcclusionContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:icon="@drawable/ic_add"
app:iconGravity="textStart"
android:text="@string/choose_an_image" />
android:orientation="vertical"
android:paddingTop="14dp">

<com.google.android.material.button.MaterialButton
android:id="@+id/PasteImageForOcclusionButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:text="Paste Image from Clipboard"
app:icon="@drawable/ic_paste"
app:iconGravity="textStart"/>
<com.ichi2.ui.FixedTextView
android:id="@+id/ImageSelectionForOcclusionLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:layout_marginLeft="8dip"
android:layout_marginRight="8dip"
android:layout_marginBottom="4dip"
android:clickable="false"
android:gravity="start|center_vertical"
android:textStyle="bold"
tools:text="Image:"/>

<com.google.android.material.button.MaterialButton
android:id="@+id/GalleryForOcclusionButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
android:text="@string/multimedia_editor_image_field_editing_galery"
app:icon="@drawable/ic_gallery"
app:iconGravity="textStart" />

<com.google.android.material.button.MaterialButton
android:id="@+id/CameraForOcclusionButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
app:icon="@drawable/ic_camera"
app:iconGravity="textStart"
android:text="@string/multimedia_editor_image_field_editing_photo" />

<com.google.android.material.button.MaterialButton
android:id="@+id/PasteImageForOcclusionButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
app:icon="@drawable/ic_paste"
app:iconGravity="textStart"
android:text="@string/paste_from_clipboard" />
</LinearLayout>
</LinearLayout>

<androidx.appcompat.widget.AppCompatButton
Expand Down
4 changes: 4 additions & 0 deletions AnkiDroid/src/main/res/values/02-strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,17 @@
<!-- Navigation drawer strings -->
<string name="drawer_open">Open drawer</string>
<string name="drawer_close">Close drawer</string>

<string name="note_message">Note saved</string>

<!-- Note editor screen -->
<string name="CardEditorCardDeck">Card deck:</string>
<string name="CardEditorNoteDeck">Deck:</string>
<string name="CardEditorModel">Type:</string>
<string name="CardEditorTags">Tags: %1$s</string>
<string name="CardEditorCards">Cards: %1$s</string>
<string name="edit_occlusions">Edit Occlusions</string>
<string name="paste_from_clipboard" maxLength="28">Paste from clipboard</string>

<string name="tag_name">Tag name</string>
<string name="add_new_filter_tags">Add/filter tags</string>
Expand Down