Skip to content

Commit

Permalink
Merge pull request #1065 from hyperskill/release/1.60
Browse files Browse the repository at this point in the history
Release 1.60
  • Loading branch information
XanderZhu authored Jun 5, 2024
2 parents 8a0897e + 10d3649 commit 34c5fb1
Show file tree
Hide file tree
Showing 107 changed files with 1,309 additions and 672 deletions.
22 changes: 11 additions & 11 deletions androidHyperskillApp/Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ GEM
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.3.0)
aws-partitions (1.907.0)
aws-sdk-core (3.191.6)
aws-partitions (1.939.0)
aws-sdk-core (3.196.1)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.8)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.78.0)
aws-sdk-core (~> 3, >= 3.191.0)
aws-sdk-kms (1.82.0)
aws-sdk-core (~> 3, >= 3.193.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.146.1)
aws-sdk-core (~> 3, >= 3.191.0)
aws-sdk-s3 (1.151.0)
aws-sdk-core (~> 3, >= 3.194.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.8)
aws-sigv4 (1.8.0)
Expand Down Expand Up @@ -109,7 +109,7 @@ GEM
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
fastlane-plugin-firebase_app_distribution (0.9.0)
fastlane-plugin-firebase_app_distribution (0.9.1)
google-apis-firebaseappdistribution_v1 (~> 0.3.0)
google-apis-firebaseappdistribution_v1alpha (~> 0.2.0)
gh_inspector (1.1.3)
Expand Down Expand Up @@ -154,7 +154,7 @@ GEM
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
highline (2.0.3)
http-cookie (1.0.5)
http-cookie (1.0.6)
domain_name (~> 0.5)
httpclient (2.8.3)
jmespath (1.6.2)
Expand All @@ -164,15 +164,15 @@ GEM
mini_magick (4.12.0)
mini_mime (1.1.5)
multi_json (1.15.0)
multipart-post (2.4.0)
multipart-post (2.4.1)
nanaimo (0.3.0)
naturally (2.2.1)
nkf (0.2.0)
optparse (0.4.0)
optparse (0.5.0)
os (1.1.4)
plist (3.7.1)
public_suffix (5.0.5)
rake (13.2.0)
rake (13.2.1)
representable (3.2.0)
declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,13 @@ object ShareUtils {
file
)
}

fun getShareTextIntent(text: String): Intent {
val shareIntent = Intent().apply {
action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_TEXT, text)
type = "text/plain"
}
return Intent.createChooser(shareIntent, null)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import org.hyperskill.app.android.R
import org.hyperskill.app.android.core.view.ui.navigation.requireRouter
import org.hyperskill.app.android.core.view.ui.widget.compose.HyperskillTheme
import org.hyperskill.app.android.debug.ui.DebugScreen
import org.hyperskill.app.android.stage_implementation.view.navigation.StageImplementationScreen
import org.hyperskill.app.android.stage_implementation.navigation.StageImplementationScreen
import org.hyperskill.app.android.step.view.navigation.StepScreen
import org.hyperskill.app.core.view.handleActions
import org.hyperskill.app.debug.presentation.DebugFeature
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package org.hyperskill.app.android.stage_implementation.delegate

import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import androidx.core.view.MenuHost
import androidx.core.view.MenuProvider
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner
import org.hyperskill.app.android.R
import org.hyperskill.app.step.domain.model.StepMenuAction

object StageStepMenuDelegate {

fun setup(
menuHost: MenuHost,
viewLifecycleOwner: LifecycleOwner,
onActionClick: (StepMenuAction) -> Unit
) {
menuHost.addMenuProvider(
StageMenuProvider(onActionClick),
viewLifecycleOwner,
Lifecycle.State.RESUMED
)
}
}

private class StageMenuProvider(
private val onActionClick: (StepMenuAction) -> Unit
) : MenuProvider {

override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
menuInflater.inflate(R.menu.stage_menu, menu)
}

override fun onMenuItemSelected(menuItem: MenuItem): Boolean =
when (menuItem.itemId) {
R.id.stageShare -> {
onActionClick(StepMenuAction.SHARE)
true
}
R.id.stageFeedback -> {
onActionClick(StepMenuAction.REPORT)
true
}
R.id.stageOpenInWeb -> {
onActionClick(StepMenuAction.OPEN_IN_WEB)
true
}
else -> false
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.hyperskill.app.android.stage_implementation.view.dialog
package org.hyperskill.app.android.stage_implementation.dialog

import android.app.Dialog
import android.content.DialogInterface
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.hyperskill.app.android.stage_implementation.view.dialog
package org.hyperskill.app.android.stage_implementation.dialog

import android.app.Dialog
import android.content.DialogInterface
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.hyperskill.app.android.stage_implementation.view.dialog
package org.hyperskill.app.android.stage_implementation.dialog

import android.app.Dialog
import android.content.DialogInterface
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.hyperskill.app.android.stage_implementation.view.fragment
package org.hyperskill.app.android.stage_implementation.fragment

import android.os.Bundle
import android.view.View
Expand All @@ -13,8 +13,8 @@ import org.hyperskill.app.android.main.view.ui.navigation.MainScreen
import org.hyperskill.app.android.main.view.ui.navigation.MainScreenRouter
import org.hyperskill.app.android.main.view.ui.navigation.Tabs
import org.hyperskill.app.android.main.view.ui.navigation.switch
import org.hyperskill.app.android.stage_implementation.view.dialog.ProjectCompletedBottomSheet
import org.hyperskill.app.android.stage_implementation.view.dialog.StageCompletedBottomSheet
import org.hyperskill.app.android.stage_implementation.dialog.ProjectCompletedBottomSheet
import org.hyperskill.app.android.stage_implementation.dialog.StageCompletedBottomSheet
import org.hyperskill.app.core.injection.ReduxViewModelFactory
import org.hyperskill.app.stage_implement.presentation.StageImplementFeature
import org.hyperskill.app.stage_implementation.presentation.StageImplementationViewModel
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
package org.hyperskill.app.android.stage_implementation.view.fragment
package org.hyperskill.app.android.stage_implementation.fragment

import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.MenuHost
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import by.kirich1409.viewbindingdelegate.viewBinding
import org.hyperskill.app.android.HyperskillApp
import org.hyperskill.app.android.R
import org.hyperskill.app.android.core.extensions.argument
import org.hyperskill.app.android.core.extensions.logger
import org.hyperskill.app.android.core.view.ui.fragment.setChildFragment
import org.hyperskill.app.android.core.view.ui.navigation.requireRouter
import org.hyperskill.app.android.databinding.FragmentStageStepWrapperBinding
import org.hyperskill.app.android.main.view.ui.navigation.MainScreenRouter
import org.hyperskill.app.android.share_streak.fragment.ShareStreakDialogFragment
import org.hyperskill.app.android.stage_implementation.delegate.StageStepMenuDelegate
import org.hyperskill.app.android.step.view.delegate.StepDelegate
import org.hyperskill.app.android.step.view.fragment.StepWrapperFragment
import org.hyperskill.app.android.step.view.model.StepCompletionHost
Expand Down Expand Up @@ -48,6 +52,7 @@ class StageStepWrapperFragment :
companion object {
private const val STEP_DESCRIPTION_FRAGMENT_TAG = "step_content"
private const val STEP_QUIZ_FRAGMENT_TAG = "step_quiz"
private const val LOGGER_TAG = "StageStepWrapperFragment"

@Suppress("DEPRECATION")
fun newInstance(
Expand Down Expand Up @@ -77,6 +82,8 @@ class StageStepWrapperFragment :
private val mainScreenRouter: MainScreenRouter =
HyperskillApp.graph().navigationComponent.mainScreenCicerone.router

private val logger by logger(LOGGER_TAG)

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
injectComponent()
Expand Down Expand Up @@ -109,6 +116,17 @@ class StageStepWrapperFragment :
lifecycle = viewLifecycleOwner.lifecycle,
onNewMessage = stepViewModel::onNewMessage
)
setupMenu()
}

private fun setupMenu() {
(requireActivity() as AppCompatActivity)
.setSupportActionBar(viewBinding.stageImplementationAppBar.stageImplementationToolbar)
StageStepMenuDelegate.setup(
menuHost = requireActivity() as MenuHost,
viewLifecycleOwner = viewLifecycleOwner,
onActionClick = stepViewModel::onActionClick
)
}

override fun onDestroyView() {
Expand Down Expand Up @@ -144,7 +162,8 @@ class StageStepWrapperFragment :
StepDelegate.onAction(
fragment = this,
mainScreenRouter = mainScreenRouter,
action = action
action = action,
logger = logger
)
}

Expand All @@ -161,7 +180,7 @@ class StageStepWrapperFragment :
}

override fun onShareClick(streak: Int) {
stepViewModel.onShareClick(streak)
stepViewModel.onShareStreakClick(streak)
}

override fun onRefuseStreakSharingClick(streak: Int) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package org.hyperskill.app.android.stage_implementation.view.navigation
package org.hyperskill.app.android.stage_implementation.navigation

import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentFactory
import com.github.terrakok.cicerone.androidx.FragmentScreen
import org.hyperskill.app.android.stage_implementation.view.fragment.StageImplementationFragment
import org.hyperskill.app.android.stage_implementation.fragment.StageImplementationFragment

class StageImplementationScreen(
private val projectId: Long,
Expand Down
Loading

0 comments on commit 34c5fb1

Please sign in to comment.