diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 3be419b757ef..37fcff853c8a 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -2,7 +2,8 @@
25.7
-----
-
+* [**] Send feedback from within the experimental editor "more" options menu. [#21586]
+* [**] Support accessing the code editor within the experimental editor. [#21582]
25.6
-----
diff --git a/WordPress/src/jetpack/res/values-night/colors_base.xml b/WordPress/src/jetpack/res/values-night/colors_base.xml
index eac8746a0bc5..71a85faaf05d 100644
--- a/WordPress/src/jetpack/res/values-night/colors_base.xml
+++ b/WordPress/src/jetpack/res/values-night/colors_base.xml
@@ -5,7 +5,7 @@
@color/primary_40
@color/primary_50
- @color/blue_30
+ @color/colorPrimary
@color/white
@color/white
diff --git a/WordPress/src/jetpack/res/values/colors_base.xml b/WordPress/src/jetpack/res/values/colors_base.xml
index db08cc887e06..acd855a4b986 100644
--- a/WordPress/src/jetpack/res/values/colors_base.xml
+++ b/WordPress/src/jetpack/res/values/colors_base.xml
@@ -5,7 +5,7 @@
@color/primary
@color/primary_40
- @color/blue_50
+ @color/colorPrimary
@color/jetpack_green_50
@color/jetpack_green_0
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java b/WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java
index de1f163ba73b..14522ad1e1b2 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java
@@ -1318,8 +1318,13 @@ public static void viewHelp(@NonNull Context context, @NonNull Origin origin, @N
}
public static void viewFeedbackForm(@NonNull Context context) {
+ viewFeedbackForm(context, null);
+ }
+
+ public static void viewFeedbackForm(@NonNull Context context, @Nullable String feedbackPrefix) {
AnalyticsTracker.track(Stat.APP_REVIEWS_FEEDBACK_SCREEN_OPENED);
Intent intent = new Intent(context, FeedbackFormActivity.class);
+ intent.putExtra(FeedbackFormActivity.EXTRA_FEEDBACK_PREFIX, feedbackPrefix);
context.startActivity(intent);
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/feedbackform/FeedbackFormActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/main/feedbackform/FeedbackFormActivity.kt
index 167d6710859f..8ada7c428809 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/main/feedbackform/FeedbackFormActivity.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/main/feedbackform/FeedbackFormActivity.kt
@@ -10,6 +10,7 @@ import androidx.compose.ui.platform.ViewCompositionStrategy
import dagger.hilt.android.AndroidEntryPoint
import androidx.appcompat.app.AppCompatActivity
import org.wordpress.android.ui.RequestCodes
+import org.wordpress.android.ui.accounts.HelpActivity
@AndroidEntryPoint
class FeedbackFormActivity : AppCompatActivity() {
@@ -18,6 +19,9 @@ class FeedbackFormActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
+ val feedbackPrefix = intent.getStringExtra(EXTRA_FEEDBACK_PREFIX)
+ viewModel.feedbackPrefix = feedbackPrefix
+
setContentView(
ComposeView(this).apply {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
@@ -45,8 +49,7 @@ class FeedbackFormActivity : AppCompatActivity() {
viewModel.onRemoveMediaClick(it)
},
onSupportClick = {
- // This will return to the Help screen, where the user can see the contact support link
- finish()
+ navigateToHelpScreen()
},
)
}
@@ -54,6 +57,13 @@ class FeedbackFormActivity : AppCompatActivity() {
)
}
+ private fun navigateToHelpScreen() {
+ val intent = Intent(this, HelpActivity::class.java)
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK)
+ startActivity(intent)
+ finish()
+ }
+
@Deprecated("Deprecated in Java")
public override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
@@ -64,4 +74,8 @@ class FeedbackFormActivity : AppCompatActivity() {
}
}
}
+
+ companion object {
+ const val EXTRA_FEEDBACK_PREFIX = "extra_feedback_prefix"
+ }
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/feedbackform/FeedbackFormViewModel.kt b/WordPress/src/main/java/org/wordpress/android/ui/main/feedbackform/FeedbackFormViewModel.kt
index 30c0c5c6b01c..2beda1af90f1 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/main/feedbackform/FeedbackFormViewModel.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/main/feedbackform/FeedbackFormViewModel.kt
@@ -61,6 +61,8 @@ class FeedbackFormViewModel @Inject constructor(
private val _progressDialogState = MutableStateFlow(null)
val progressDialogState = _progressDialogState.asStateFlow()
+ var feedbackPrefix: String? = null
+
fun updateMessageText(message: String) {
if (message != _messageText.value) {
_messageText.value = message
@@ -138,12 +140,13 @@ class FeedbackFormViewModel @Inject constructor(
attachmentTokens: List = emptyList()
) {
showProgressDialog(R.string.sending)
+ val descriptionPrefix = feedbackPrefix?.let { "[$it] " } ?: ""
zendeskHelper.createRequest(
context = context,
origin = HelpActivity.Origin.FEEDBACK_FORM,
selectedSite = selectedSiteRepository.getSelectedSite(),
extraTags = listOf("in_app_feedback"),
- requestDescription = _messageText.value,
+ requestDescription = descriptionPrefix + _messageText.value,
attachmentTokens = attachmentTokens,
callback = object : ZendeskHelper.CreateRequestCallback() {
override fun onSuccess() {
@@ -303,4 +306,3 @@ class FeedbackFormViewModel @Inject constructor(
private const val MAX_ATTACHMENTS = 5
}
}
-
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.kt
index eec54313e76b..02b723c5e2db 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.kt
@@ -1412,6 +1412,8 @@ class EditPostActivity : AppCompatActivity(), EditorFragmentActivity, EditorImag
val historyMenuItem = menu.findItem(R.id.menu_history)
val settingsMenuItem = menu.findItem(R.id.menu_post_settings)
val helpMenuItem = menu.findItem(R.id.menu_editor_help)
+ val sendFeedbackItem = menu.findItem(R.id.menu_editor_send_feedback)
+
if (undoItem != null) {
undoItem.setEnabled(menuHasUndo)
undoItem.setVisible(!htmlModeMenuStateOn)
@@ -1426,10 +1428,7 @@ class EditPostActivity : AppCompatActivity(), EditorFragmentActivity, EditorImag
}
previewMenuItem?.setVisible(showMenuItems)
if (viewHtmlModeMenuItem != null) {
- viewHtmlModeMenuItem.setVisible(
- (((editorFragment is AztecEditorFragment)
- || (editorFragment is GutenbergEditorFragment))) && showMenuItems
- )
+ viewHtmlModeMenuItem.isVisible = showMenuItems
viewHtmlModeMenuItem.setTitle(
if (htmlModeMenuStateOn) R.string.menu_visual_mode else R.string.menu_html_mode)
}
@@ -1496,6 +1495,11 @@ class EditPostActivity : AppCompatActivity(), EditorFragmentActivity, EditorImag
helpMenuItem.setVisible(false)
}
}
+
+ if (sendFeedbackItem != null) {
+ sendFeedbackItem.isVisible = editorFragment is GutenbergKitEditorFragment
+ }
+
return super.onPrepareOptionsMenu(menu)
}
@@ -1645,6 +1649,8 @@ class EditPostActivity : AppCompatActivity(), EditorFragmentActivity, EditorImag
analyticsTrackerWrapper.track(Stat.EDITOR_HELP_SHOWN, siteModel)
(editorFragment as GutenbergEditorFragment).showEditorHelp()
}
+ } else if (itemId == R.id.menu_editor_send_feedback) {
+ ActivityLauncher.viewFeedbackForm(this@EditPostActivity, "Editor")
} else if (itemId == R.id.menu_undo_action) {
if (editorFragment is GutenbergEditorFragment) {
(editorFragment as GutenbergEditorFragment).onUndoPressed()
diff --git a/WordPress/src/main/res/layout/add_category.xml b/WordPress/src/main/res/layout/add_category.xml
index 9fbfbda2e777..e6c0dfbe8115 100644
--- a/WordPress/src/main/res/layout/add_category.xml
+++ b/WordPress/src/main/res/layout/add_category.xml
@@ -44,6 +44,8 @@
android:id="@+id/parent_category"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_marginStart="-4dp"
+ android:layout_marginEnd="-4dp"
app:popupTheme="@style/ThemeOverlay.AppCompat.DayNight"
tools:listitem="@layout/wp_simple_list_item_1" />
@@ -54,8 +56,6 @@
style="@style/WordPress.PrepubPrimaryButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/margin_medium"
- android:layout_marginEnd="@dimen/margin_medium"
android:layout_marginTop="@dimen/margin_medium"
android:layout_marginBottom="@dimen/margin_medium"
android:enabled="false"
diff --git a/WordPress/src/main/res/layout/prepublishing_tags_fragment.xml b/WordPress/src/main/res/layout/prepublishing_tags_fragment.xml
index ea7032e62393..2eeaffee5ba5 100644
--- a/WordPress/src/main/res/layout/prepublishing_tags_fragment.xml
+++ b/WordPress/src/main/res/layout/prepublishing_tags_fragment.xml
@@ -4,20 +4,18 @@
android:layout_height="match_parent"
android:orientation="vertical">
+
+
-
-
diff --git a/WordPress/src/main/res/layout/publicize_list_fragment.xml b/WordPress/src/main/res/layout/publicize_list_fragment.xml
index e53071f2c830..f69c493c4d9b 100644
--- a/WordPress/src/main/res/layout/publicize_list_fragment.xml
+++ b/WordPress/src/main/res/layout/publicize_list_fragment.xml
@@ -114,7 +114,10 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
+ android:layout_marginEnd="@dimen/margin_extra_large"
android:layout_marginStart="@dimen/margin_extra_large"
+ android:gravity="center_vertical"
+ android:minHeight="@dimen/min_touch_target_sz"
android:text="@string/manage"
android:textAppearance="?attr/textAppearanceSubtitle1" />
diff --git a/WordPress/src/main/res/menu/edit_post.xml b/WordPress/src/main/res/menu/edit_post.xml
index dbfdb50fc5e2..160d404f3fb8 100644
--- a/WordPress/src/main/res/menu/edit_post.xml
+++ b/WordPress/src/main/res/menu/edit_post.xml
@@ -71,5 +71,10 @@
android:title="@string/help_and_support" >
+ -
+
+
diff --git a/WordPress/src/main/res/values-night/colors_base.xml b/WordPress/src/main/res/values-night/colors_base.xml
index f4b8292fb845..794050b55417 100644
--- a/WordPress/src/main/res/values-night/colors_base.xml
+++ b/WordPress/src/main/res/values-night/colors_base.xml
@@ -5,7 +5,7 @@
@color/primary_30
@color/primary_50
- @color/primary_30
+ @color/colorPrimary
@color/colorPrimary
@color/colorPrimary
diff --git a/WordPress/src/main/res/values/colors_base.xml b/WordPress/src/main/res/values/colors_base.xml
index a33ec45a9bdc..0cd9869f2452 100644
--- a/WordPress/src/main/res/values/colors_base.xml
+++ b/WordPress/src/main/res/values/colors_base.xml
@@ -5,7 +5,7 @@
@color/primary
@color/primary_70
- @color/blue_50
+ @color/colorPrimary
@color/blue_50
@color/blue_0
diff --git a/WordPress/src/main/res/values/strings.xml b/WordPress/src/main/res/values/strings.xml
index 923b38760055..c157210ab25f 100644
--- a/WordPress/src/main/res/values/strings.xml
+++ b/WordPress/src/main/res/values/strings.xml
@@ -3730,7 +3730,7 @@
Back
Add Tags
Publish Date
- Tags help tell readers what a post is about.
+ Tags help tell readers what a post is about
Not set
Give your story a title
Not set
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index cf3dc904ef61..d602d78347a1 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -11,7 +11,7 @@ androidx-appcompat = '1.7.0'
androidx-arch-core = '2.2.0'
androidx-camera = '1.4.1'
androidx-cardview = '1.0.0'
-androidx-compose-bom = '2024.12.01'
+androidx-compose-bom = '2025.01.00'
androidx-compose-material3 = '1.3.1'
androidx-constraintlayout-compose = '1.1.0'
androidx-constraintlayout-main = '2.2.0'
@@ -71,7 +71,7 @@ google-play-services-auth = '20.4.1'
google-services = '4.4.2'
gravatar = '2.2.0'
greenrobot-eventbus = '3.3.1'
-gutenberg-kit = '55-a490cd3d2d70ad4bba501655f83fdc42b404d502'
+gutenberg-kit = 'trunk-cc52214a50893b41898607ac0bff7f2787b085bb'
gutenberg-mobile = 'v1.121.0'
indexos-media-for-mobile = '43a9026f0973a2f0a74fa813132f6a16f7499c3a'
jackson-databind = '2.12.7.1'
diff --git a/libs/editor/src/main/java/org/wordpress/android/editor/gutenberg/GutenbergKitEditorFragment.java b/libs/editor/src/main/java/org/wordpress/android/editor/gutenberg/GutenbergKitEditorFragment.java
index 14a8e9943eff..0e86c1c89391 100644
--- a/libs/editor/src/main/java/org/wordpress/android/editor/gutenberg/GutenbergKitEditorFragment.java
+++ b/libs/editor/src/main/java/org/wordpress/android/editor/gutenberg/GutenbergKitEditorFragment.java
@@ -306,6 +306,7 @@ private void toggleHtmlMode() {
mHtmlModeEnabled = !mHtmlModeEnabled;
mEditorFragmentListener.onTrackableEvent(TrackableEvent.HTML_BUTTON_TAPPED);
mEditorFragmentListener.onHtmlModeToggledInToolbar();
+ mGutenbergView.setTextEditorEnabled(mHtmlModeEnabled);
}
@Override