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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,6 @@ dependencies {
implementation(projects.pluginApi)
implementation(projects.pluginManager)

implementation(projects.layouteditor)
implementation(projects.idetooltips)
implementation(projects.floatingWindow)
implementation(projects.gitCore)
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.itsaky.androidide.databinding.DeleteProjectsItemBinding
import com.itsaky.androidide.models.Checkable
import org.appdevforall.codeonthego.layouteditor.ProjectFile
import com.itsaky.androidide.models.ProjectFile

class DeleteProjectListAdapter(
private var projects: List<Checkable<ProjectFile>>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ import com.itsaky.androidide.tasks.executeAsync
import com.itsaky.androidide.utils.applyLongPressRecursively
import com.itsaky.androidide.utils.flashError
import com.itsaky.androidide.utils.flashSuccess
import org.appdevforall.codeonthego.layouteditor.ProjectFile
import org.appdevforall.codeonthego.layouteditor.databinding.TextinputlayoutBinding
import com.itsaky.androidide.databinding.RenameProjectTextinputBinding
import com.itsaky.androidide.models.ProjectFile
import org.slf4j.LoggerFactory
import java.io.File

Expand Down Expand Up @@ -219,7 +219,7 @@ class RecentProjectsAdapter(
val oldName = project.name
val builder = MaterialAlertDialogBuilder(context).setTitle(R.string.rename_project)

val binding = TextinputlayoutBinding.inflate(LayoutInflater.from(context))
val binding = RenameProjectTextinputBinding.inflate(LayoutInflater.from(context))
binding.textinputEdittext.setText(project.name)
binding.textinputLayout.hint = context.getString(R.string.msg_new_project_name)
val padding = (16 * context.resources.displayMetrics.density).toInt()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import com.itsaky.androidide.idetooltips.TooltipTag.MAIN_GET_STARTED
import com.itsaky.androidide.viewmodel.MainViewModel
import org.adfa.constants.CONTENT_KEY
import org.adfa.constants.CONTENT_TITLE_KEY
import org.appdevforall.codeonthego.layouteditor.managers.ProjectManager
import org.koin.androidx.viewmodel.ext.android.activityViewModel

class MainFragment : BaseFragment() {
Expand Down Expand Up @@ -87,8 +86,7 @@ class MainFragment : BaseFragment() {
handleGitUrlDrop(
shouldAcceptDrop = {
isVisible &&
viewModel.currentScreen.value == MainViewModel.SCREEN_MAIN &&
ProjectManager.instance.openedProject == null
viewModel.currentScreen.value == MainViewModel.SCREEN_MAIN
},
onDropped = viewModel::requestCloneRepository
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.debounce
import kotlinx.coroutines.joinAll
import kotlinx.coroutines.launch
import org.appdevforall.codeonthego.layouteditor.ProjectFile
import com.itsaky.androidide.models.ProjectFile
import com.itsaky.androidide.utils.flashSuccess
import com.itsaky.androidide.utils.findValidProjects
import com.itsaky.androidide.utils.isProjectCandidateDir
Expand Down
41 changes: 41 additions & 0 deletions app/src/main/java/com/itsaky/androidide/models/ProjectFile.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package com.itsaky.androidide.models

import android.content.Context
import com.itsaky.androidide.resources.R
import com.itsaky.androidide.utils.formatDate
import java.io.File

class ProjectFile(
path: String,
val createdAt: String?,
val lastModified: String?,
) {

var path: String = path
private set

var name: String = lastSegment(path)
private set

fun rename(newPath: String) {
File(path).renameTo(File(newPath))
path = newPath
name = lastSegment(newPath)
}
Comment thread
Daniel-ADFA marked this conversation as resolved.

fun renderDateText(context: Context): String {
val showModified = createdAt != lastModified
val renderDate = if (showModified) lastModified else createdAt
val label =
if (showModified) {
context.getString(R.string.date_modified_label)
} else {
context.getString(R.string.date_created_label)
}
return context.getString(R.string.date, label, formatDate(renderDate ?: ""))
}

private companion object {
fun lastSegment(path: String): String = path.substring(path.lastIndexOf("/") + 1)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import com.itsaky.androidide.utils.loadProjectDetails
import com.itsaky.androidide.utils.viewLifecycleScope
import com.termux.shared.interact.ShareUtils.copyTextToClipboard
import kotlinx.coroutines.launch
import org.appdevforall.codeonthego.layouteditor.ProjectFile
import com.itsaky.androidide.models.ProjectFile

class ProjectInfoBottomSheet : BottomSheetDialogFragment() {
companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ import com.itsaky.androidide.actions.etc.FindAction
import com.itsaky.androidide.actions.etc.FindInFileAction
import com.itsaky.androidide.actions.etc.FindInProjectAction
import com.itsaky.androidide.actions.etc.LaunchAppAction
import com.itsaky.androidide.actions.etc.PreviewLayoutAction
import com.itsaky.androidide.actions.file.CloseAllFilesAction
import com.itsaky.androidide.actions.file.CloseFileAction
import com.itsaky.androidide.actions.file.CloseOtherFilesAction
Expand Down Expand Up @@ -95,7 +94,6 @@ class EditorActivityActions {
registry.registerAction(UndoAction(context, order++))
registry.registerAction(RedoAction(context, order++))
registry.registerAction(SaveFileAction(context, order++))
registry.registerAction(PreviewLayoutAction(context, order++))
registry.registerAction(FindAction(context, order++))
registry.registerAction(FindInFileAction(context, order++))
registry.registerAction(FindInProjectAction(context, order++))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import com.itsaky.androidide.roomData.recentproject.RecentProjectDao
import com.itsaky.androidide.roomData.recentproject.RecentProjectRoomDatabase
import com.itsaky.androidide.utils.getCreatedTime
import com.itsaky.androidide.utils.getLastModifiedTime
import org.appdevforall.codeonthego.layouteditor.ProjectFile
import com.itsaky.androidide.models.ProjectFile
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.MutableSharedFlow
Expand Down Expand Up @@ -80,9 +80,7 @@ class RecentProjectsViewModel(application: Application) : AndroidViewModel(appli
fun loadProjects(): Job {
return viewModelScope.launch(Dispatchers.IO) {
val projectsFromDb = recentProjectDao.dumpAll() ?: emptyList()
val context = getApplication<Application>().applicationContext

allProjects = projectsFromDb.map { ProjectFile(it.location, it.createdAt, it.lastModified, context) }
allProjects = projectsFromDb.map { ProjectFile(it.location, it.createdAt, it.lastModified) }
applyFilters()
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,22 @@
<com.google.android.material.textfield.TextInputLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:hint="Enter value"
android:id="@+id/textinput_layout"
app:hintAnimationEnabled="true"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter value"
android:padding="10dp"
app:boxCornerRadiusBottomEnd="@dimen/cornerLow"
app:boxCornerRadiusBottomStart="@dimen/cornerLow"
app:boxCornerRadiusTopEnd="@dimen/cornerLow"
app:boxCornerRadiusTopStart="@dimen/cornerLow">

app:boxCornerRadiusBottomEnd="8dp"
app:boxCornerRadiusBottomStart="8dp"
app:boxCornerRadiusTopEnd="8dp"
app:boxCornerRadiusTopStart="8dp"
app:hintAnimationEnabled="true">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/textinput_edittext"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:maxLines="1"
android:layout_height="wrap_content"
android:inputType="text"
android:textSize="16sp"/>


</com.google.android.material.textfield.TextInputLayout>
android:maxLines="1"
android:textSize="16sp" />
</com.google.android.material.textfield.TextInputLayout>
Loading
Loading