Skip to content

Commit 0830e68

Browse files
Merge pull request #16020 from nextcloud/fix/set-status-message-time-set
fix: set status message time set
2 parents 3bd4ce2 + 5a049b7 commit 0830e68

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

app/src/main/java/com/nextcloud/ui/SetStatusMessageBottomSheet.kt

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,17 @@ import java.util.Locale
4949
import javax.inject.Inject
5050

5151
private const val POS_DONT_CLEAR = 0
52-
private const val POS_HALF_AN_HOUR = 1
53-
private const val POS_AN_HOUR = 2
54-
private const val POS_FOUR_HOURS = 3
55-
private const val POS_TODAY = 4
56-
private const val POS_END_OF_WEEK = 5
52+
private const val POS_FIFTEEN_MINUTES = 1
53+
private const val POS_HALF_AN_HOUR = 2
54+
private const val POS_AN_HOUR = 3
55+
private const val POS_FOUR_HOURS = 4
56+
private const val POS_TODAY = 5
57+
private const val POS_END_OF_WEEK = 6
5758

5859
private const val ONE_SECOND_IN_MILLIS = 1000
5960
private const val ONE_MINUTE_IN_SECONDS = 60
6061
private const val THIRTY_MINUTES = 30
62+
private const val FIFTEEN_MINUTES = 15
6163
private const val FOUR_HOURS = 4
6264
private const val LAST_HOUR_OF_DAY = 23
6365
private const val LAST_MINUTE_OF_HOUR = 59
@@ -135,6 +137,7 @@ class SetStatusMessageBottomSheet(val user: User, val currentStatus: Status?) :
135137
val adapter = ArrayAdapter<String>(requireContext(), android.R.layout.simple_spinner_item)
136138
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
137139
adapter.add(getString(R.string.dontClear))
140+
adapter.add(getString(R.string.fifteenMinutes))
138141
adapter.add(getString(R.string.thirtyMinutes))
139142
adapter.add(getString(R.string.oneHour))
140143
adapter.add(getString(R.string.fourHours))
@@ -191,6 +194,10 @@ class SetStatusMessageBottomSheet(val user: User, val currentStatus: Status?) :
191194
private fun setClearStatusAfterValue(item: Int) {
192195
clearAt = when (item) {
193196
POS_DONT_CLEAR -> null // don't clear
197+
POS_FIFTEEN_MINUTES -> {
198+
// 15 minutes
199+
System.currentTimeMillis() / ONE_SECOND_IN_MILLIS + FIFTEEN_MINUTES * ONE_MINUTE_IN_SECONDS
200+
}
194201
POS_HALF_AN_HOUR -> {
195202
// 30 minutes
196203
System.currentTimeMillis() / ONE_SECOND_IN_MILLIS + THIRTY_MINUTES * ONE_MINUTE_IN_SECONDS
@@ -296,6 +303,9 @@ class SetStatusMessageBottomSheet(val user: User, val currentStatus: Status?) :
296303
}
297304

298305
override fun onClick(predefinedStatus: PredefinedStatus) {
306+
val oldListener = binding.clearStatusAfterSpinner.onItemSelectedListener
307+
binding.clearStatusAfterSpinner.onItemSelectedListener = null
308+
299309
selectedPredefinedMessageId = predefinedStatus.id
300310
clearAt = clearAtToUnixTime(predefinedStatus.clearAt)
301311
binding.emoji.setText(predefinedStatus.icon)
@@ -315,11 +325,14 @@ class SetStatusMessageBottomSheet(val user: User, val currentStatus: Status?) :
315325
CLEAR_AT_TYPE_END_OF -> updateClearAtViewsForEndOf(clearAt)
316326
}
317327
}
328+
318329
setClearStatusAfterValue(binding.clearStatusAfterSpinner.selectedItemPosition)
330+
binding.clearStatusAfterSpinner.onItemSelectedListener = oldListener
319331
}
320332

321333
private fun updateClearAtViewsForPeriod(clearAt: ClearAt) {
322334
when (clearAt.time) {
335+
"900" -> binding.clearStatusAfterSpinner.setSelection(POS_FIFTEEN_MINUTES)
323336
"1800" -> binding.clearStatusAfterSpinner.setSelection(POS_HALF_AN_HOUR)
324337
"3600" -> binding.clearStatusAfterSpinner.setSelection(POS_AN_HOUR)
325338
"14400" -> binding.clearStatusAfterSpinner.setSelection(POS_FOUR_HOURS)

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,6 +1218,7 @@
12181218
<string name="default_emoji" translatable="false">😃</string>
12191219
<string name="dontClear">Don\'t clear</string>
12201220
<string name="today">Today</string>
1221+
<string name="fifteenMinutes">15 minutes</string>
12211222
<string name="thirtyMinutes">30 minutes</string>
12221223
<string name="oneHour">1 hour</string>
12231224
<string name="fourHours">4 hours</string>

0 commit comments

Comments
 (0)