Skip to content

Commit bfad1b6

Browse files
feat(ADFA-3671): Save credentials after successful clone
1 parent a99fdc4 commit bfad1b6

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

app/src/main/java/com/itsaky/androidide/di/AppModule.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import com.itsaky.androidide.analytics.AnalyticsManager
88
import com.itsaky.androidide.analytics.IAnalyticsManager
99
import com.itsaky.androidide.git.core.GitCredentialsManager
1010
import com.itsaky.androidide.roomData.recentproject.RecentProjectRoomDatabase
11+
import com.itsaky.androidide.viewmodel.CloneRepositoryViewModel
1112
import com.itsaky.androidide.viewmodel.GitBottomSheetViewModel
1213
import com.itsaky.androidide.viewmodel.MainViewModel
1314
import kotlinx.coroutines.CoroutineScope
@@ -33,6 +34,7 @@ val coreModule =
3334
GitBottomSheetViewModel(get())
3435
}
3536
viewModel { MainViewModel(get()) }
37+
viewModel { CloneRepositoryViewModel(get(), get()) }
3638

3739

3840
single<CoroutineScope> {

app/src/main/java/com/itsaky/androidide/fragments/CloneRepositoryFragment.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import android.view.ViewGroup
77
import android.widget.EditText
88
import androidx.core.widget.doAfterTextChanged
99
import org.koin.androidx.viewmodel.ext.android.activityViewModel
10-
import androidx.fragment.app.viewModels
1110
import androidx.lifecycle.Lifecycle
1211
import androidx.lifecycle.lifecycleScope
1312
import androidx.lifecycle.repeatOnLifecycle
@@ -24,12 +23,13 @@ import com.itsaky.androidide.idetooltips.TooltipManager
2423
import com.itsaky.androidide.idetooltips.TooltipTag
2524
import com.itsaky.androidide.utils.forEachViewRecursively
2625
import kotlinx.coroutines.launch
26+
import org.koin.androidx.viewmodel.ext.android.viewModel
2727
import java.io.File
2828

2929
class CloneRepositoryFragment : BaseFragment() {
3030

3131
private var binding: FragmentCloneRepositoryBinding? = null
32-
private val viewModel: CloneRepositoryViewModel by viewModels()
32+
private val viewModel: CloneRepositoryViewModel by viewModel()
3333
private val mainViewModel: MainViewModel by activityViewModel()
3434

3535
override fun onCreateView(

app/src/main/java/com/itsaky/androidide/viewmodel/CloneRepositoryViewModel.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,13 @@ import java.net.UnknownHostException
2121
import java.io.EOFException
2222
import java.io.File
2323
import com.blankj.utilcode.util.NetworkUtils
24+
import com.itsaky.androidide.git.core.GitCredentialsManager
2425
import com.itsaky.androidide.resources.R
2526

26-
class CloneRepositoryViewModel(application: Application) : AndroidViewModel(application) {
27+
class CloneRepositoryViewModel(
28+
application: Application,
29+
private val credentialsManager: GitCredentialsManager
30+
) : AndroidViewModel(application) {
2731

2832
private val _uiState = MutableStateFlow<CloneRepoUiState>(CloneRepoUiState.Idle())
2933
val uiState: StateFlow<CloneRepoUiState> = _uiState.asStateFlow()
@@ -182,6 +186,7 @@ class CloneRepositoryViewModel(application: Application) : AndroidViewModel(appl
182186
_uiState.update {
183187
CloneRepoUiState.Success(localPath = localPath)
184188
}
189+
credentialsManager.saveCredentialsIfNeeded(username, token)
185190
} catch (e: Exception) {
186191
// Error handling
187192
if (isCloneCancelled) {

0 commit comments

Comments
 (0)