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/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/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/idetooltips/src/main/java/com/itsaky/androidide/idetooltips/TooltipTag.kt b/idetooltips/src/main/java/com/itsaky/androidide/idetooltips/TooltipTag.kt index 89bfc6df2e..36374bfcf6 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" @@ -158,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" } 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