Skip to content

Commit

Permalink
Merge pull request #956 from hyperskill/release/1.53
Browse files Browse the repository at this point in the history
Release 1.53
  • Loading branch information
ivan-magda authored Apr 2, 2024
2 parents ac41e6e + 33c106d commit e5db98d
Show file tree
Hide file tree
Showing 193 changed files with 2,149 additions and 881 deletions.
10 changes: 5 additions & 5 deletions .github/actions/setup-android/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,14 @@ runs:
working-directory: './androidHyperskillApp'

- name: Setup Java JDK
uses: actions/setup-java@v4.0.0
uses: actions/setup-java@v4.2.1
with:
java-version: '17'
java-version: '19'
distribution: 'temurin'

# Cache Gradle dependencies
- name: Setup Gradle Dependencies Cache
uses: actions/cache@v4.0.1
uses: actions/cache@v4.0.2
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle', '**/*.gradle.kts') }}
Expand All @@ -85,7 +85,7 @@ runs:
# Cache Gradle Wrapper
- name: Setup Gradle Wrapper Cache
uses: actions/cache@v4.0.1
uses: actions/cache@v4.0.2
with:
path: ~/.gradle/wrapper
key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradle*properties') }}
Expand All @@ -94,7 +94,7 @@ runs:
# Cache Kotlin/Native compiler
- name: Setup Kotlin/Native Compiler Cache
uses: actions/cache@v4.0.1
uses: actions/cache@v4.0.2
with:
path: ~/.konan
key: ${{ runner.os }}-kotlin-native-compiler-${{ hashFiles('gradle/libs.versions.toml') }}
Expand Down
14 changes: 7 additions & 7 deletions .github/actions/setup-ios/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,14 @@ runs:
working-directory: './iosHyperskillApp'

- name: Setup Java JDK
uses: actions/setup-java@v4.0.0
uses: actions/setup-java@v4.2.1
with:
java-version: '17'
java-version: '19'
distribution: 'temurin'

# Cache Gradle dependencies
- name: Setup Gradle Dependencies Cache
uses: actions/cache@v4.0.1
uses: actions/cache@v4.0.2
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle', '**/*.gradle.kts') }}
Expand All @@ -72,7 +72,7 @@ runs:
# Cache Gradle Wrapper
- name: Setup Gradle Wrapper Cache
uses: actions/cache@v4.0.1
uses: actions/cache@v4.0.2
with:
path: ~/.gradle/wrapper
key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradle*properties') }}
Expand All @@ -81,7 +81,7 @@ runs:
# Cache Kotlin/Native compiler
- name: Setup Kotlin/Native Compiler Cache
uses: actions/cache@v4.0.1
uses: actions/cache@v4.0.2
with:
path: ~/.konan
key: ${{ runner.os }}-kotlin-native-compiler-${{ hashFiles('gradle/libs.versions.toml') }}
Expand All @@ -100,7 +100,7 @@ runs:

# Cache Pods dependencies
- name: Cache Pods
uses: actions/cache@v4.0.1
uses: actions/cache@v4.0.2
id: cache-pods
with:
path: './iosHyperskillApp/Pods'
Expand All @@ -111,7 +111,7 @@ runs:
# Cache CocoaPods
- name: Cache CocoaPods
if: steps.cache-pods.outputs.cache-hit != 'true'
uses: actions/cache@v4.0.1
uses: actions/cache@v4.0.2
with:
path: |
~/.cocoapods
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/android_beta_deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
uses: actions/checkout@v4.1.1

- name: Gradle Wrapper Validation
uses: gradle/wrapper-validation-action@v2.1.1
uses: gradle/wrapper-validation-action@v2.1.2

# Build and submit to the Firebase App Distribution
firebase-deployment:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/android_deploy_to_firebase_manually.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
uses: actions/checkout@v4.1.1

- name: Gradle Wrapper Validation
uses: gradle/wrapper-validation-action@v2.1.1
uses: gradle/wrapper-validation-action@v2.1.2

# Build and submit to the Firebase App Distribution
firebase-deployment:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/android_release_deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
uses: actions/checkout@v4.1.1

- name: Gradle Wrapper Validation
uses: gradle/wrapper-validation-action@v2.1.1
uses: gradle/wrapper-validation-action@v2.1.2

# Build and submit to the Google Play
deployment:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
uses: actions/checkout@v4.1.1

- name: Gradle Wrapper Validation
uses: gradle/wrapper-validation-action@v2.1.1
uses: gradle/wrapper-validation-action@v2.1.2

files-changed:
name: Detect changes
Expand Down Expand Up @@ -94,7 +94,7 @@ jobs:
working-directory: './iosHyperskillApp'

- name: Cache Pods
uses: actions/cache@v4.0.1
uses: actions/cache@v4.0.2
id: cache-pods
with:
path: './iosHyperskillApp/Pods'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/gh_pages_analytics.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
uses: ./.github/actions/setup-android

- name: Setup Pages
uses: actions/configure-pages@v4.0.0
uses: actions/configure-pages@v5.0.0

- name: Build Documentation
run: ./gradlew dokkaAnalytics
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ios_beta_deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
uses: actions/checkout@v4.1.1

- name: Gradle Wrapper Validation
uses: gradle/wrapper-validation-action@v2.1.1
uses: gradle/wrapper-validation-action@v2.1.2

# Build, archive for ad-hoc and submit to Firebase App Distribution
deployment:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ios_release_deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
uses: actions/checkout@v4.1.1

- name: Gradle Wrapper Validation
uses: gradle/wrapper-validation-action@v2.1.1
uses: gradle/wrapper-validation-action@v2.1.2

# Build, archive for app-store and submit to App Store Connect
deployment:
Expand Down
25 changes: 15 additions & 10 deletions androidHyperskillApp/Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,29 +1,32 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.6)
CFPropertyList (3.0.7)
base64
nkf
rexml
addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
artifactory (3.0.15)
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.3.0)
aws-partitions (1.883.0)
aws-sdk-core (3.191.0)
aws-partitions (1.899.0)
aws-sdk-core (3.191.4)
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.77.0)
aws-sdk-kms (1.78.0)
aws-sdk-core (~> 3, >= 3.191.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.143.0)
aws-sdk-s3 (1.146.0)
aws-sdk-core (~> 3, >= 3.191.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.8)
aws-sigv4 (1.8.0)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
base64 (0.2.0)
claide (1.1.0)
colored (1.2)
colored2 (3.1.2)
Expand All @@ -35,7 +38,7 @@ GEM
domain_name (0.6.20240107)
dotenv (2.8.1)
emoji_regex (3.2.3)
excon (0.109.0)
excon (0.110.0)
faraday (1.10.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
Expand Down Expand Up @@ -130,12 +133,12 @@ GEM
google-apis-core (>= 0.11.0, < 2.a)
google-apis-storage_v1 (0.31.0)
google-apis-core (>= 0.11.0, < 2.a)
google-cloud-core (1.6.1)
google-cloud-core (1.7.0)
google-cloud-env (>= 1.0, < 3.a)
google-cloud-errors (~> 1.0)
google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.3.1)
google-cloud-errors (1.4.0)
google-cloud-storage (1.47.0)
addressable (~> 2.8)
digest-crc (~> 0.4)
Expand All @@ -156,13 +159,15 @@ GEM
httpclient (2.8.3)
jmespath (1.6.2)
json (2.7.1)
jwt (2.7.1)
jwt (2.8.1)
base64
mini_magick (4.12.0)
mini_mime (1.1.5)
multi_json (1.15.0)
multipart-post (2.4.0)
nanaimo (0.3.0)
naturally (2.2.1)
nkf (0.2.0)
optparse (0.4.0)
os (1.1.4)
plist (3.7.1)
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Unleash your potential on-the-go with MyHyperskill. Boost your coding and transform your journey into real-world expertise. With over 50 tracks and 300+ projects, we provide a comprehensive learning experience. Tackle today's challenges with our «Problem of the Day» and set your pace with adjustable daily reminders. From Python to Scala, we cover all modern programming languages and frameworks, ensuring you're primed for the evolving tech landscape. Hyperskill is your stepping stone to the tech world!
Unleash your potential on-the-go with Hyperskill. Boost your coding and transform your journey into real-world expertise. With over 50 tracks and 300+ projects, we provide a comprehensive learning experience. Tackle today's challenges with our «Problem of the Day» and set your pace with adjustable daily reminders. From Python to Scala, we cover all modern programming languages and frameworks, ensuring you're primed for the evolving tech landscape. Hyperskill is your stepping stone to the tech world!
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Master coding on-the-go with MyHyperskill! Immerse yourself in curated lessons, keep your streak and sharpen your knowledge with 3000+ hands-on topics.
Master coding on-the-go with Hyperskill! Immerse yourself in curated lessons, keep your streak and sharpen your knowledge with 3000+ hands-on topics.
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
package org.hyperskill.app.android.core.extensions

import android.content.Context
import android.view.inputmethod.InputMethodManager
import android.widget.EditText
import kotlin.math.max

fun EditText.insertText(text: String, offset: Int) {
val start = max(this.selectionStart - offset, 0)
val end = max(this.selectionEnd, 0)
this.text.replace(start, end, text, 0, text.length)
}

fun EditText.requestFocus(context: Context) {
requestFocus()
val inputMethodManager =
context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.showSoftInput(this, InputMethodManager.SHOW_IMPLICIT)
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ class MainActivity :
observeNotificationsOnboardingFlowFinished()
observeFirstProblemOnboardingFlowFinished()
observeUsersQuestionnaireOnboardingCompleted()
observePaywallCompleted()
observePaywallIsShownChanged()

mainViewModel.logScreenOrientation(screenOrientation = resources.configuration.screenOrientation)
logNotificationAvailability()
Expand Down Expand Up @@ -203,10 +203,10 @@ class MainActivity :
}
}

private fun observePaywallCompleted() {
observeResult<Any>(PaywallFragment.PAYWALL_COMPLETED) {
private fun observePaywallIsShownChanged() {
observeResult<Boolean>(PaywallFragment.PAYWALL_IS_SHOWN_CHANGED) {
mainViewModel.onNewMessage(
WelcomeOnboardingFeature.Message.PaywallCompleted
AppFeature.Message.IsPaywallShownChanged(it)
)
}
}
Expand Down Expand Up @@ -293,8 +293,6 @@ class MainActivity :
)
WelcomeOnboardingFeature.Action.ViewAction.NavigateTo.NotificationOnboardingScreen ->
router.newRootScreen(NotificationsOnboardingScreen)
is WelcomeOnboardingFeature.Action.ViewAction.NavigateTo.Paywall ->
router.newRootScreen(PaywallScreen(viewAction.paywallTransitionSource))
WelcomeOnboardingFeature.Action.ViewAction.NavigateTo.UsersQuestionnaireOnboardingScreen ->
router.newRootScreen(UsersQuestionnaireOnboardingScreen)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.platform.ViewCompositionStrategy
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.ViewModelProvider
import org.hyperskill.app.android.HyperskillApp
import org.hyperskill.app.android.core.extensions.setHyperskillColors
Expand All @@ -22,13 +24,14 @@ import org.hyperskill.app.android.main.view.ui.navigation.Tabs
import org.hyperskill.app.android.paywall.ui.PaywallScreen
import org.hyperskill.app.core.view.handleActions
import org.hyperskill.app.paywall.domain.model.PaywallTransitionSource
import org.hyperskill.app.paywall.presentation.PaywallFeature
import org.hyperskill.app.paywall.presentation.PaywallFeature.Action.ViewAction
import org.hyperskill.app.paywall.presentation.PaywallViewModel
import ru.nobird.android.view.base.ui.extension.argument

class PaywallFragment : Fragment() {
companion object {
const val PAYWALL_COMPLETED = "PAYWALL_COMPLETED"
const val PAYWALL_IS_SHOWN_CHANGED = "PAYWALL_IS_SHOWN_CHANGED"

fun newInstance(paywallTransitionSource: PaywallTransitionSource): PaywallFragment =
PaywallFragment().apply {
Expand All @@ -47,6 +50,17 @@ class PaywallFragment : Fragment() {
super.onCreate(savedInstanceState)
injectComponent()
paywallViewModel.handleActions(this, onAction = ::onAction)
lifecycle.addObserver(
LifecycleEventObserver { _, event ->
when (event) {
Lifecycle.Event.ON_START -> paywallViewModel.onNewMessage(PaywallFeature.Message.ScreenShowed)
Lifecycle.Event.ON_STOP -> paywallViewModel.onNewMessage(PaywallFeature.Message.ScreenHidden)
else -> {
// no op
}
}
}
)
}

private fun injectComponent() {
Expand Down Expand Up @@ -74,8 +88,8 @@ class PaywallFragment : Fragment() {

private fun onAction(action: ViewAction) {
when (action) {
ViewAction.CompletePaywall -> {
requireAppRouter().sendResult(PAYWALL_COMPLETED, Any())
is ViewAction.NotifyPaywallIsShown -> {
requireAppRouter().sendResult(PAYWALL_IS_SHOWN_CHANGED, action.isPaywallShown)
}
ViewAction.NavigateTo.Back -> {
requireRouter().exit()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package org.hyperskill.app.android.step_quiz.view.delegate

import com.google.android.material.button.MaterialButton
import org.hyperskill.app.step_quiz.domain.model.submissions.Reply
import org.hyperskill.app.step_quiz.presentation.StepQuizFeature
import org.hyperskill.app.submissions.domain.model.Reply

interface StepQuizFormDelegate {

Expand Down
Loading

0 comments on commit e5db98d

Please sign in to comment.