Skip to content

Commit

Permalink
Release 1.4.0
Browse files Browse the repository at this point in the history
  • Loading branch information
drewhamilton committed Apr 23, 2021
1 parent b8c4bac commit 01b9f97
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 1 deletion.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# CHANGELOG

## 1.4.0
_2021-04-23_

Add the ability to define a `DeferredDimension.Constant` with `DP` and `SP` units, in addition to
the default `PX`.

## 1.3.0
_2021-02-19_

Expand Down
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,26 +28,32 @@ resolution or about Context:
class LocalViewModel : MyViewModel {
override fun getText(): DeferredText = DeferredText.Resource(R.string.someText)
override fun getTextColor(): DeferredColor = DeferredColor.Attribute(R.attr.colorOnBackground)
override fun getTextSize(): DeferredDimension = DeferredDimension.Attribute(R.attr.bodyTextSize)
}

class RemoteViewModel(private val api: Api) : MyViewModel {
override fun getText(): DeferredText = DeferredText.Constant(api.fetchText())
override fun getTextColor(): DeferredColor = DeferredColor.Constant(api.fetchTextColor())
override fun getTextSize(): DeferredDimension =
DeferredDimension.Constant(api.fetchTextSize(), DeferredDimension.Constant.Unit.SP)
}
```

In the view layer, resolve a deferred resource to display it:
```kotlin
val text: DeferredText = viewModel.getText()
val textColor: DeferredColor = viewModel.getTextColor()
val textSize: DeferredDimension = viewModel.getTextSize()
textView.text = text.resolve(context)
textView.setTextColor(textColor.resolve(context))
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, deferredSize.resolveExact(context))
```

With view extensions, this is even simpler:
```kotlin
textView.setText(viewModel.getText())
textView.setTextColor(viewModel.getTextColor())
textView.setTextSize(viewModel.getTextSize())
```

### Text types
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ buildscript {

ext {
publishGroup = 'com.backbase.oss.deferredresources'
libraryVersion = '1.4.0-SNAPSHOT'
libraryVersion = '1.4.0'
minSdk = 14
targetSdk = 30
buildToolsVersion = '30.0.3'
Expand Down
6 changes: 6 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,28 +14,34 @@ resolution or about Context:
class LocalViewModel : MyViewModel {
override fun getText(): DeferredText = DeferredText.Resource(R.string.someText)
override fun getTextColor(): DeferredColor = DeferredColor.Attribute(R.attr.colorOnBackground)
override fun getTextSize(): DeferredDimension = DeferredDimension.Attribute(R.attr.bodyTextSize)
}

// API-based text and color:
class RemoteViewModel(private val api: Api) : MyViewModel {
override fun getText(): DeferredText = DeferredText.Constant(api.fetchText())
override fun getTextColor(): DeferredColor = DeferredColor.Constant(api.fetchTextColor())
override fun getTextSize(): DeferredDimension =
DeferredDimension.Constant(api.fetchTextSize(), DeferredDimension.Constant.Unit.SP)
}
```

In the view layer, resolve a deferred resource to display it:
```kotlin
val text: DeferredText = viewModel.getText()
val textColor: DeferredColor = viewModel.getTextColor()
val textSize: DeferredDimension = viewModel.getTextSize()
textView.text = text.resolve(context)
textView.setTextColor(textColor.resolve(context))
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, deferredSize.resolveExact(context))
```

With view extensions, this is even simpler. The View's own Context is used to resolve any deferred
resource types:
```kotlin
textView.setText(viewModel.getText())
textView.setTextColor(viewModel.getTextColor())
textView.setTextSize(viewModel.getTextSize())
```

### Text types
Expand Down

0 comments on commit 01b9f97

Please sign in to comment.