From ebd549202739aee3c85e145f805d60234cb2dd8c Mon Sep 17 00:00:00 2001 From: Oluwadara Abijo Date: Mon, 9 Mar 2026 22:08:42 +0100 Subject: [PATCH 1/3] feat(ADFA-3214): Update download project button label --- app/src/main/res/layout/fragment_clone_repository.xml | 2 +- resources/src/main/res/values/strings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/layout/fragment_clone_repository.xml b/app/src/main/res/layout/fragment_clone_repository.xml index 7f738aaa86..8b6b90b732 100644 --- a/app/src/main/res/layout/fragment_clone_repository.xml +++ b/app/src/main/res/layout/fragment_clone_repository.xml @@ -123,7 +123,7 @@ android:layout_marginTop="24dp" app:layout_goneMarginTop="16dp" android:enabled="false" - android:text="@string/clone" + android:text="@string/download_project" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@id/passwordLayout" /> diff --git a/resources/src/main/res/values/strings.xml b/resources/src/main/res/values/strings.xml index 2c7e566923..5c286cf69e 100644 --- a/resources/src/main/res/values/strings.xml +++ b/resources/src/main/res/values/strings.xml @@ -1156,7 +1156,7 @@ Use Authentication Username Personal access token - Clone project + Download project Destination directory is not empty Clone successful! Clone failed: %1$s From 05652f0a14674bddb9a2205a6f25215bdf6ea32c Mon Sep 17 00:00:00 2001 From: Oluwadara Abijo Date: Mon, 9 Mar 2026 22:25:01 +0100 Subject: [PATCH 2/3] feat(ADFA-3214): Add tooltip to clone action --- .../main/java/com/itsaky/androidide/fragments/MainFragment.kt | 2 ++ .../main/java/com/itsaky/androidide/idetooltips/TooltipTag.kt | 1 + 2 files changed, 3 insertions(+) diff --git a/app/src/main/java/com/itsaky/androidide/fragments/MainFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/MainFragment.kt index ae8e852f8e..8b132a622a 100644 --- a/app/src/main/java/com/itsaky/androidide/fragments/MainFragment.kt +++ b/app/src/main/java/com/itsaky/androidide/fragments/MainFragment.kt @@ -14,6 +14,7 @@ import com.itsaky.androidide.adapters.MainActionsListAdapter import com.itsaky.androidide.databinding.FragmentMainBinding import com.itsaky.androidide.idetooltips.TooltipManager import com.itsaky.androidide.idetooltips.TooltipTag.MAIN_GET_STARTED +import com.itsaky.androidide.idetooltips.TooltipTag.MAIN_GIT import com.itsaky.androidide.idetooltips.TooltipTag.MAIN_HELP import com.itsaky.androidide.idetooltips.TooltipTag.MAIN_PREFERENCES import com.itsaky.androidide.idetooltips.TooltipTag.MAIN_PROJECT_DELETE @@ -138,6 +139,7 @@ class MainFragment : BaseFragment() { ACTION_DOCS -> MAIN_HELP ACTION_OPEN_TERMINAL -> MAIN_TERMINAL ACTION_PREFERENCES -> MAIN_PREFERENCES + ACTION_CLONE_REPO -> MAIN_GIT else -> "" } diff --git a/idetooltips/src/main/java/com/itsaky/androidide/idetooltips/TooltipTag.kt b/idetooltips/src/main/java/com/itsaky/androidide/idetooltips/TooltipTag.kt index 89bfc6df2e..aae8d6ea69 100644 --- a/idetooltips/src/main/java/com/itsaky/androidide/idetooltips/TooltipTag.kt +++ b/idetooltips/src/main/java/com/itsaky/androidide/idetooltips/TooltipTag.kt @@ -80,6 +80,7 @@ object TooltipTag { const val FEEDBACK = "feedback" const val MAIN_PREFERENCES = "main.prefs" const val MAIN_TERMINAL = "main.terminal" + const val MAIN_GIT = "main.git" // Editor toolbar const val EDITOR_TOOLBAR_NAV_ICON = "project.menu" From ed333b79bacf30121f7d6b0e652abdccc5aff3fc Mon Sep 17 00:00:00 2001 From: Oluwadara Abijo Date: Mon, 9 Mar 2026 22:51:32 +0100 Subject: [PATCH 3/3] feat(ADFA-3214): Add tooltip tag to git clone screen --- .../fragments/CloneRepositoryFragment.kt | 19 +++++++++++++++++++ .../androidide/idetooltips/TooltipTag.kt | 3 +++ 2 files changed, 22 insertions(+) diff --git a/app/src/main/java/com/itsaky/androidide/fragments/CloneRepositoryFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/CloneRepositoryFragment.kt index f7c88f8ba5..6cdf18215f 100644 --- a/app/src/main/java/com/itsaky/androidide/fragments/CloneRepositoryFragment.kt +++ b/app/src/main/java/com/itsaky/androidide/fragments/CloneRepositoryFragment.kt @@ -4,18 +4,23 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.EditText import androidx.core.widget.doAfterTextChanged import androidx.fragment.app.activityViewModels import androidx.fragment.app.viewModels import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle +import com.google.android.material.textfield.TextInputLayout import com.itsaky.androidide.activities.MainActivity import com.itsaky.androidide.databinding.FragmentCloneRepositoryBinding import com.itsaky.androidide.viewmodel.CloneRepositoryViewModel import com.itsaky.androidide.viewmodel.MainViewModel import com.itsaky.androidide.git.core.models.CloneRepoUiState import com.itsaky.androidide.R +import com.itsaky.androidide.idetooltips.TooltipManager +import com.itsaky.androidide.idetooltips.TooltipTag +import com.itsaky.androidide.utils.forEachViewRecursively import kotlinx.coroutines.launch import java.io.File @@ -88,6 +93,20 @@ class CloneRepositoryFragment : BaseFragment() { exitButton.setOnClickListener { mainViewModel.setScreen(MainViewModel.SCREEN_MAIN) } + + root.forEachViewRecursively { child -> + if (child is EditText || child is TextInputLayout) { + return@forEachViewRecursively + } + child.setOnLongClickListener { v -> + TooltipManager.showIdeCategoryTooltip( + context = requireContext(), + anchorView = v, + tag = TooltipTag.GIT_DOWNLOAD_SCREEN + ) + true + } + } } } diff --git a/idetooltips/src/main/java/com/itsaky/androidide/idetooltips/TooltipTag.kt b/idetooltips/src/main/java/com/itsaky/androidide/idetooltips/TooltipTag.kt index aae8d6ea69..36374bfcf6 100644 --- a/idetooltips/src/main/java/com/itsaky/androidide/idetooltips/TooltipTag.kt +++ b/idetooltips/src/main/java/com/itsaky/androidide/idetooltips/TooltipTag.kt @@ -159,4 +159,7 @@ object TooltipTag { const val DEBUGGER_ACTION_RESTART = "debug.toolbar.restart" const val PROJECT_PLUGIN_TAB = "project.plugin.tab" + + // Git + const val GIT_DOWNLOAD_SCREEN = "git.download" }