Prepare release 129 (#4880)
Let's get those three fixes out. #4864 is the important one.
This commit is contained in:
commit
280f2f0a01
10 changed files with 78 additions and 52 deletions
|
|
@ -6,6 +6,14 @@
|
|||
|
||||
### Significant bug fixes
|
||||
|
||||
## v27.2
|
||||
|
||||
### Significant bug fixes
|
||||
|
||||
- The title of a hashtag tab now shows the actual hashtags again (instead of just "Hashtags") https://github.com/tuskyapp/Tusky/pull/4868
|
||||
- Makes sure the background color of a dialogs is correct https://github.com/tuskyapp/Tusky/pull/4864
|
||||
- Fixes an issue where Tusky would freeze while loading a timeline gap https://github.com/tuskyapp/Tusky/pull/4865
|
||||
|
||||
## v27.1
|
||||
|
||||
### New features and other improvements
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@ android {
|
|||
namespace "com.keylesspalace.tusky"
|
||||
minSdk 24
|
||||
targetSdk 34
|
||||
versionCode 128
|
||||
versionName "27.1"
|
||||
versionCode 129
|
||||
versionName "27.2"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ class AccountsInListFragment : DialogFragment() {
|
|||
viewModel.load(listId)
|
||||
}
|
||||
|
||||
override fun getTheme() = R.style.TuskyDialogOverlay
|
||||
override fun getTheme() = R.style.TuskyDialogFragment
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
|
|
|
|||
|
|
@ -886,10 +886,7 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, MenuProvider {
|
|||
tabLayoutMediator = TabLayoutMediator(activeTabLayout, binding.viewPager, true) {
|
||||
tab: TabLayout.Tab, position: Int ->
|
||||
tab.icon = AppCompatResources.getDrawable(this@MainActivity, tabs[position].icon)
|
||||
tab.contentDescription = when (tabs[position].id) {
|
||||
LIST -> tabs[position].arguments[1]
|
||||
else -> getString(tabs[position].text)
|
||||
}
|
||||
tab.contentDescription = tabs[position].title(this)
|
||||
if (tabs[position].id == DIRECT) {
|
||||
val badge = tab.orCreateBadge
|
||||
badge.isVisible = activeAccount.hasDirectMessageBadge
|
||||
|
|
|
|||
|
|
@ -308,27 +308,27 @@ class NotificationsViewModel @Inject constructor(
|
|||
)
|
||||
)
|
||||
|
||||
val response = db.withTransaction {
|
||||
val idAbovePlaceholder = notificationsDao.getIdAbove(account.id, placeholderId)
|
||||
val idBelowPlaceholder = notificationsDao.getIdBelow(account.id, placeholderId)
|
||||
when (readingOrder) {
|
||||
// Using minId, loads up to LOAD_AT_ONCE statuses with IDs immediately
|
||||
// after minId and no larger than maxId
|
||||
ReadingOrder.OLDEST_FIRST -> api.notifications(
|
||||
maxId = idAbovePlaceholder,
|
||||
minId = idBelowPlaceholder,
|
||||
limit = TimelineViewModel.LOAD_AT_ONCE,
|
||||
excludes = excludes.value
|
||||
)
|
||||
// Using sinceId, loads up to LOAD_AT_ONCE statuses immediately before
|
||||
// maxId, and no smaller than minId.
|
||||
ReadingOrder.NEWEST_FIRST -> api.notifications(
|
||||
maxId = idAbovePlaceholder,
|
||||
sinceId = idBelowPlaceholder,
|
||||
limit = TimelineViewModel.LOAD_AT_ONCE,
|
||||
excludes = excludes.value
|
||||
)
|
||||
}
|
||||
val (idAbovePlaceholder, idBelowPlaceholder) = db.withTransaction {
|
||||
notificationsDao.getIdAbove(account.id, placeholderId) to
|
||||
notificationsDao.getIdBelow(account.id, placeholderId)
|
||||
}
|
||||
val response = when (readingOrder) {
|
||||
// Using minId, loads up to LOAD_AT_ONCE statuses with IDs immediately
|
||||
// after minId and no larger than maxId
|
||||
ReadingOrder.OLDEST_FIRST -> api.notifications(
|
||||
maxId = idAbovePlaceholder,
|
||||
minId = idBelowPlaceholder,
|
||||
limit = TimelineViewModel.LOAD_AT_ONCE,
|
||||
excludes = excludes.value
|
||||
)
|
||||
// Using sinceId, loads up to LOAD_AT_ONCE statuses immediately before
|
||||
// maxId, and no smaller than minId.
|
||||
ReadingOrder.NEWEST_FIRST -> api.notifications(
|
||||
maxId = idAbovePlaceholder,
|
||||
sinceId = idBelowPlaceholder,
|
||||
limit = TimelineViewModel.LOAD_AT_ONCE,
|
||||
excludes = excludes.value
|
||||
)
|
||||
}
|
||||
|
||||
val notifications = response.body()
|
||||
|
|
|
|||
|
|
@ -157,25 +157,25 @@ class CachedTimelineViewModel @Inject constructor(
|
|||
Placeholder(placeholderId, loading = true).toEntity(tuskyAccountId = account.id)
|
||||
)
|
||||
|
||||
val response = db.withTransaction {
|
||||
val idAbovePlaceholder = timelineDao.getIdAbove(account.id, placeholderId)
|
||||
val idBelowPlaceholder = timelineDao.getIdBelow(account.id, placeholderId)
|
||||
when (readingOrder) {
|
||||
// Using minId, loads up to LOAD_AT_ONCE statuses with IDs immediately
|
||||
// after minId and no larger than maxId
|
||||
OLDEST_FIRST -> api.homeTimeline(
|
||||
maxId = idAbovePlaceholder,
|
||||
minId = idBelowPlaceholder,
|
||||
limit = LOAD_AT_ONCE
|
||||
)
|
||||
// Using sinceId, loads up to LOAD_AT_ONCE statuses immediately before
|
||||
// maxId, and no smaller than minId.
|
||||
NEWEST_FIRST -> api.homeTimeline(
|
||||
maxId = idAbovePlaceholder,
|
||||
sinceId = idBelowPlaceholder,
|
||||
limit = LOAD_AT_ONCE
|
||||
)
|
||||
}
|
||||
val (idAbovePlaceholder, idBelowPlaceholder) = db.withTransaction {
|
||||
timelineDao.getIdAbove(account.id, placeholderId) to
|
||||
timelineDao.getIdBelow(account.id, placeholderId)
|
||||
}
|
||||
val response = when (readingOrder) {
|
||||
// Using minId, loads up to LOAD_AT_ONCE statuses with IDs immediately
|
||||
// after minId and no larger than maxId
|
||||
OLDEST_FIRST -> api.homeTimeline(
|
||||
maxId = idAbovePlaceholder,
|
||||
minId = idBelowPlaceholder,
|
||||
limit = LOAD_AT_ONCE
|
||||
)
|
||||
// Using sinceId, loads up to LOAD_AT_ONCE statuses immediately before
|
||||
// maxId, and no smaller than minId.
|
||||
NEWEST_FIRST -> api.homeTimeline(
|
||||
maxId = idAbovePlaceholder,
|
||||
sinceId = idBelowPlaceholder,
|
||||
limit = LOAD_AT_ONCE
|
||||
)
|
||||
}
|
||||
|
||||
val statuses = response.body()
|
||||
|
|
|
|||
11
app/src/main/res/drawable/dialog_background.xml
Normal file
11
app/src/main/res/drawable/dialog_background.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<inset xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:insetLeft="16dp"
|
||||
android:insetTop="16dp"
|
||||
android:insetRight="16dp"
|
||||
android:insetBottom="16dp">
|
||||
<shape android:shape="rectangle">
|
||||
<corners android:radius="?attr/dialogCornerRadius" />
|
||||
<solid android:color="@color/colorBackground" />
|
||||
</shape>
|
||||
</inset>
|
||||
|
|
@ -94,9 +94,9 @@
|
|||
<item name="snackbarButtonStyle">@style/TuskyButton.TextButton</item>
|
||||
|
||||
<!-- for dialogs created with MaterialALertDialogBuilder -->
|
||||
<item name="materialAlertDialogTheme">@style/TuskyDialogOverlay</item>
|
||||
<item name="materialAlertDialogTheme">@style/TuskyMaterialDialogOverlay</item>
|
||||
<!-- for dialogs opened from preferences -->
|
||||
<item name="alertDialogTheme">@style/TuskyDialogOverlay</item>
|
||||
<item name="alertDialogTheme">@style/TuskyAlertDialog</item>
|
||||
<item name="dialogCornerRadius">16dp</item>
|
||||
|
||||
<item name="materialTimePickerTheme">@style/TuskyTimePickerOverlay</item>
|
||||
|
|
@ -146,12 +146,22 @@
|
|||
<item name="android:colorControlNormal">@color/white</item>
|
||||
</style>
|
||||
|
||||
<style name="TuskyDialogOverlay" parent="@style/ThemeOverlay.Material3.MaterialAlertDialog">
|
||||
<item name="alertDialogStyle">@style/TuskyDialog</item>
|
||||
<style name="TuskyDialogFragment" parent="@style/ThemeOverlay.Material3.Dialog">
|
||||
<item name="android:windowBackground">@drawable/dialog_background</item>
|
||||
<item name="android:backgroundDimAmount">0.5</item>
|
||||
</style>
|
||||
|
||||
<style name="TuskyDialog" parent="@style/MaterialAlertDialog.Material3">
|
||||
<style name="TuskyAlertDialog" parent="@style/ThemeOverlay.Material3.Dialog.Alert">
|
||||
<item name="android:windowBackground">@drawable/dialog_background</item>
|
||||
<item name="android:backgroundDimAmount">0.5</item>
|
||||
</style>
|
||||
|
||||
<style name="TuskyMaterialDialogOverlay" parent="@style/ThemeOverlay.Material3.MaterialAlertDialog">
|
||||
<item name="alertDialogStyle">@style/TuskyMaterialDialog</item>
|
||||
<item name="android:backgroundDimAmount">0.5</item>
|
||||
</style>
|
||||
|
||||
<style name="TuskyMaterialDialog" parent="@style/MaterialAlertDialog.Material3">
|
||||
<item name="shapeAppearance">@style/ShapeAppearance.Material3.Corner.Large</item>
|
||||
<item name="backgroundTint">@color/colorBackground</item>
|
||||
</style>
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 923 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 627 KiB After Width: | Height: | Size: 640 KiB |
Loading…
Add table
Add a link
Reference in a new issue