Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: massivemadness/Fragula
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 2.10
Choose a base ref
...
head repository: massivemadness/Fragula
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 2.10.1
Choose a head ref
  • 11 commits
  • 28 files changed
  • 1 contributor

Commits on Nov 1, 2023

  1. Verified

    This commit was signed with the committer’s verified signature.
    bcomnes Bret Comnes
    Copy the full SHA
    79101fb View commit details
  2. Slightly improve NavGraph.equals() performance

    Small trick to avoid unnecessary checks
    androidx/androidx@06f18f7
    massivemadness committed Nov 1, 2023

    Verified

    This commit was signed with the committer’s verified signature.
    bcomnes Bret Comnes
    Copy the full SHA
    181e753 View commit details
  3. Verified

    This commit was signed with the committer’s verified signature.
    bcomnes Bret Comnes
    Copy the full SHA
    3e5035f View commit details

Commits on Nov 20, 2023

  1. Copy the full SHA
    e09034a View commit details
  2. Update ktlint

    massivemadness committed Nov 20, 2023
    Copy the full SHA
    bec2910 View commit details
  3. Copy the full SHA
    d267822 View commit details
  4. Fix ktlint on CI

    massivemadness committed Nov 20, 2023
    Copy the full SHA
    eb50e3d View commit details

Commits on Dec 24, 2023

  1. Update versions

    massivemadness committed Dec 24, 2023
    Copy the full SHA
    ccb7a52 View commit details
  2. Copy the full SHA
    67fdf44 View commit details
  3. Copy the full SHA
    3026ec4 View commit details
  4. Release v2.10.1

    massivemadness committed Dec 24, 2023
    Copy the full SHA
    b0bbd6d View commit details
Showing with 157 additions and 154 deletions.
  1. +13 −3 .editorconfig
  2. +1 −1 .github/ISSUE_TEMPLATE/bug_report.md
  3. +1 −1 .github/workflows/android.yml
  4. +2 −2 README.md
  5. +5 −4 app/build.gradle.kts
  6. +8 −6 app/src/main/kotlin/com/fragula2/sample/compose/ComposeActivity.kt
  7. +1 −1 app/src/main/kotlin/com/fragula2/sample/compose/screen/DetailScreen.kt
  8. +10 −9 app/src/main/kotlin/com/fragula2/sample/compose/screen/SettingsScreen.kt
  9. +6 −5 app/src/main/kotlin/com/fragula2/sample/compose/viewmodel/SettingsViewModel.kt
  10. +2 −2 benchmark/build.gradle.kts
  11. +1 −5 benchmark/src/main/kotlin/com/fragula2/benchmark/BaselineProfileBenchmark.kt
  12. +1 −1 build-logic/convention/src/main/kotlin/com/fragula2/gradle/FragulaModulePlugin.kt
  13. +40 −13 build.gradle.kts
  14. +1 −1 fragula-common/build.gradle.kts
  15. +1 −1 fragula-common/src/main/kotlin/com/fragula2/common/SwipeDirection.kt
  16. +1 −1 fragula-compose/build.gradle.kts
  17. +2 −2 fragula-compose/src/main/kotlin/com/fragula2/compose/Animation.kt
  18. +24 −38 fragula-compose/src/main/kotlin/com/fragula2/compose/FragulaNavHost.kt
  19. +1 −1 fragula-core/build.gradle.kts
  20. +2 −0 fragula-core/src/main/kotlin/com/fragula2/FragulaNavHostFragment.kt
  21. +2 −1 fragula-core/src/main/kotlin/com/fragula2/navigation/SwipeBackDestination.kt
  22. +2 −0 fragula-core/src/main/kotlin/com/fragula2/navigation/SwipeBackFragment.kt
  23. +3 −1 fragula-core/src/main/kotlin/com/fragula2/utils/Extensions.kt
  24. +2 −2 gradle.properties
  25. +0 −35 gradle/ktlint.gradle.kts
  26. +23 −17 gradle/libs.versions.toml
  27. +1 −1 gradle/wrapper/gradle-wrapper.properties
  28. +1 −0 settings.gradle.kts
16 changes: 13 additions & 3 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -4,7 +4,17 @@ root = true
indent_size = 4
insert_final_newline = false

# noinspection EditorConfigKeyCorrectness
# Ktlint 0.50.0
ktlint_standard_no-wildcard-imports = disabled
# noinspection EditorConfigKeyCorrectness
ktlint_standard_trailing-comma-on-declaration-site = disabled
ktlint_standard_trailing-comma-on-declaration-site = disabled

# Ktlint 1.0.0
ktlint_standard_annotation = disabled
ktlint_standard_statement-wrapping = disabled
ktlint_standard_blank-line-before-declaration = disabled
ktlint_standard_no-empty-first-line-in-class-body = disabled
ktlint_standard_multiline-expression-wrapping = disabled
ktlint_standard_string-template-indent = disabled
ktlint_standard_parameter-list-wrapping = disabled
ktlint_standard_function-signature = disabled
ktlint_standard_function-naming = disabled
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@ assignees: 'massivemadness'
*Please consider making a Pull Request if you are capable of doing so.*

**Library Version:**
2.10
2.10.1

**Affected Device(s):**
Google Pixel 3 XL with Android 9.0
2 changes: 1 addition & 1 deletion .github/workflows/android.yml
Original file line number Diff line number Diff line change
@@ -26,7 +26,7 @@ jobs:
run: ./gradlew :app:assembleDebug

- name: Check Kotlin code style
run: ./gradlew ktlint
run: ./gradlew ktlintCheck

- name: Check project's public API
run: ./gradlew apiCheck
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -50,7 +50,7 @@ Add this to your module’s `build.gradle` file:
```gradle
dependencies {
...
implementation 'com.fragula2:fragula-core:2.10'
implementation 'com.fragula2:fragula-core:2.10.1'
}
```

@@ -298,7 +298,7 @@ Add this to your module’s `build.gradle` file:
```gradle
dependencies {
...
implementation 'com.fragula2:fragula-compose:2.10'
implementation 'com.fragula2:fragula-compose:2.10.1'
}
```

9 changes: 5 additions & 4 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -17,10 +17,10 @@
import com.fragula2.gradle.BuildConst

plugins {
id("com.android.application")
id("kotlin-android")
id("kotlin-parcelize")
id("androidx.navigation.safeargs.kotlin")
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.android.navigation)
alias(libs.plugins.kotlin.parcelize)
id("stub-module")
}

@@ -84,6 +84,7 @@ dependencies {

// UI
implementation(libs.androidx.appcompat)
implementation(libs.androidx.constraintlayout)
implementation(libs.material)
implementation(libs.coil)

Original file line number Diff line number Diff line change
@@ -22,6 +22,7 @@ import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.appcompat.graphics.drawable.DrawerArrowDrawable
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material.Icon
import androidx.compose.material.IconButton
import androidx.compose.material.MaterialTheme
@@ -33,7 +34,7 @@ import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Settings
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.mutableFloatStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
@@ -68,7 +69,7 @@ class ComposeActivity : ComponentActivity() {
color = MaterialTheme.colors.background,
) {
val navController = rememberFragulaNavController()
var arrowProgress by remember { mutableStateOf(0f) }
var arrowProgress by remember { mutableFloatStateOf(0f) }
Scaffold(
topBar = {
FragulaAppBar(
@@ -96,10 +97,11 @@ class ComposeActivity : ComponentActivity() {
else -> 0f
}
},
swipeDirection = SwipeDirection.of(settingsViewModel.swipeDirection.value),
scrimColor = settingsViewModel.scrimColor.value.argbToColor(),
scrimAmount = settingsViewModel.scrimAmount.value,
elevationAmount = settingsViewModel.elevationAmount.value.dp,
swipeDirection = SwipeDirection.of(settingsViewModel.swipeDirection.intValue),
scrimColor = settingsViewModel.scrimColor.intValue.argbToColor(),
scrimAmount = settingsViewModel.scrimAmount.floatValue,
elevationAmount = settingsViewModel.elevationAmount.floatValue.dp,
modifier = Modifier.padding(paddingValues),
) {
swipeable("list") {
ListScreen(navController)
Original file line number Diff line number Diff line change
@@ -226,7 +226,7 @@ fun MessageBox(
contentDescription = null,
modifier = Modifier
.padding(
top = 56.dp, // TODO use column instead
top = 56.dp,
start = 8.dp,
bottom = 8.dp,
)
Original file line number Diff line number Diff line change
@@ -18,6 +18,7 @@ import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableFloatStateOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
@@ -52,9 +53,9 @@ fun SettingsScreen(settingsViewModel: SettingsViewModel) {
FloatButtonsRow(
modifier = Modifier.padding(top = 10.dp),
values = directionsList,
selectedFloat = settingsViewModel.swipeDirection.value.toFloat(),
selectedFloat = settingsViewModel.swipeDirection.intValue.toFloat(),
) { value ->
settingsViewModel.swipeDirection.value = value.toInt()
settingsViewModel.swipeDirection.intValue = value.toInt()
}

Text(
@@ -65,9 +66,9 @@ fun SettingsScreen(settingsViewModel: SettingsViewModel) {
)
ColorButtonsRow(
modifier = Modifier.padding(top = 10.dp),
selectedColor = settingsViewModel.scrimColor.value.argbToColor(),
selectedColor = settingsViewModel.scrimColor.intValue.argbToColor(),
) { color ->
settingsViewModel.scrimColor.value = color.toArgb()
settingsViewModel.scrimColor.intValue = color.toArgb()
}

Text(
@@ -79,9 +80,9 @@ fun SettingsScreen(settingsViewModel: SettingsViewModel) {
FloatButtonsRow(
modifier = Modifier.padding(top = 10.dp),
values = scrimAmountList,
selectedFloat = settingsViewModel.scrimAmount.value,
selectedFloat = settingsViewModel.scrimAmount.floatValue,
) { amount ->
settingsViewModel.scrimAmount.value = amount
settingsViewModel.scrimAmount.floatValue = amount
}

Text(
@@ -93,9 +94,9 @@ fun SettingsScreen(settingsViewModel: SettingsViewModel) {
FloatButtonsRow(
modifier = Modifier.padding(top = 10.dp),
values = elevationAmountList,
selectedFloat = settingsViewModel.elevationAmount.value,
selectedFloat = settingsViewModel.elevationAmount.floatValue,
) { amount ->
settingsViewModel.elevationAmount.value = amount
settingsViewModel.elevationAmount.floatValue = amount
}
}
}
@@ -147,7 +148,7 @@ private fun FloatButtonsRow(
selectedFloat: Float,
onButtonClick: (value: Float) -> Unit = {},
) {
var selectedValue: Float by remember { mutableStateOf(selectedFloat) }
var selectedValue: Float by remember { mutableFloatStateOf(selectedFloat) }
Row(
modifier = modifier
.fillMaxWidth()
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package com.fragula2.sample.compose.viewmodel

import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.mutableFloatStateOf
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.unit.dp
import androidx.lifecycle.ViewModel
import com.fragula2.common.SwipeDirection

class SettingsViewModel : ViewModel() {
val swipeDirection = mutableStateOf(SwipeDirection.LEFT_TO_RIGHT.value)
val elevationAmount = mutableStateOf(3.dp.value)
val scrimColor = mutableStateOf(Color(0xFF000000).toArgb())
val scrimAmount = mutableStateOf(0.15f)
val swipeDirection = mutableIntStateOf(SwipeDirection.LEFT_TO_RIGHT.value)
val elevationAmount = mutableFloatStateOf(3.dp.value)
val scrimColor = mutableIntStateOf(Color(0xFF000000).toArgb())
val scrimAmount = mutableFloatStateOf(0.15f)
}
4 changes: 2 additions & 2 deletions benchmark/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -17,8 +17,8 @@
import com.fragula2.gradle.BuildConst

plugins {
id("com.android.test")
id("kotlin-android")
alias(libs.plugins.android.test)
alias(libs.plugins.kotlin.android)
id("stub-module")
}

Original file line number Diff line number Diff line change
@@ -16,14 +16,12 @@

package com.fragula2.benchmark

import androidx.benchmark.macro.ExperimentalBaselineProfilesApi
import androidx.benchmark.macro.junit4.BaselineProfileRule
import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith

@OptIn(ExperimentalBaselineProfilesApi::class)
@RunWith(AndroidJUnit4ClassRunner::class)
class BaselineProfileBenchmark {

@@ -37,9 +35,7 @@ class BaselineProfileBenchmark {
fun generateComposeProfile() = generate(AppVariant.COMPOSE)

private fun generate(appVariant: AppVariant) {
baselineProfileRule.collectBaselineProfile(
packageName = "com.fragula2.sample",
) {
baselineProfileRule.collect("com.fragula2.sample") {
pressHome()
startActivityAndWait(appVariant)
}
Original file line number Diff line number Diff line change
@@ -30,7 +30,7 @@ class FragulaModulePlugin : Plugin<Project> {
with(target) {
with(pluginManager) {
apply("com.android.library")
apply("kotlin-android")
apply("org.jetbrains.kotlin.android")
apply("binary-compatibility-validator")
}

53 changes: 40 additions & 13 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -14,21 +14,48 @@
* limitations under the License.
*/

buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath(libs.plugin.android)
classpath(libs.plugin.kotlin)
classpath(libs.plugin.safeargs)
classpath(libs.plugin.validator)
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.android.test) apply false
alias(libs.plugins.android.navigation) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.kotlin.parcelize) apply false
alias(libs.plugins.kotlin.validator) apply false
}

val ktlint: Configuration by configurations.creating

dependencies {
ktlint(libs.ktlint) {
attributes {
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling.EXTERNAL))
}
}
}

tasks.register<Delete>("clean") {
delete(rootProject.buildDir)
tasks.register<JavaExec>("ktlintCheck") {
group = LifecycleBasePlugin.VERIFICATION_GROUP
description = "Check Kotlin code style."
classpath = ktlint
mainClass.set("com.pinterest.ktlint.Main")
args(
"**/src/**/*.kt",
"**.kts",
"!**/build/**",
)
}

apply(from = "gradle/ktlint.gradle.kts")
tasks.register<JavaExec>("ktlintFormat") {
group = LifecycleBasePlugin.VERIFICATION_GROUP
description = "Fix Kotlin code style deviations."
classpath = ktlint
mainClass.set("com.pinterest.ktlint.Main")
jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED")
args(
"-F",
"**/src/**/*.kt",
"**.kts",
"!**/build/**",
)
}
2 changes: 1 addition & 1 deletion fragula-common/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -26,7 +26,7 @@ android {
publishModule {
libraryGroup = "com.fragula2"
libraryArtifact = "fragula-common"
libraryVersion = "2.10"
libraryVersion = "2.10.1"
}

dependencies {
Original file line number Diff line number Diff line change
@@ -29,7 +29,7 @@ enum class SwipeDirection(val value: Int) {
companion object {

fun of(value: Int): SwipeDirection {
return checkNotNull(values().find { it.value == value })
return checkNotNull(entries.find { it.value == value })
}
}
}
2 changes: 1 addition & 1 deletion fragula-compose/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@ android {
publishModule {
libraryGroup = "com.fragula2"
libraryArtifact = "fragula-compose"
libraryVersion = "2.10"
libraryVersion = "2.10.1"
}

dependencies {
Original file line number Diff line number Diff line change
@@ -21,7 +21,7 @@ import androidx.compose.animation.core.Easing
import androidx.compose.foundation.gestures.detectHorizontalDragGestures
import androidx.compose.foundation.gestures.detectVerticalDragGestures
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.mutableFloatStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
@@ -42,7 +42,7 @@ internal fun Modifier.animateDrag(
): Modifier = composed {
if (!enabled) return@composed this
val velocityTracker = VelocityTracker()
var dragOffset by remember { mutableStateOf(0f) }
var dragOffset by remember { mutableFloatStateOf(0f) }
pointerInput(swipeDirection) {
if (!swipeDirection.isHorizontal()) {
detectVerticalDragGestures(
Loading