浏览代码

Merge pull request #4368 from nextcloud/time_Setting_for_lobby

Time setting for lobby
Sowjanya Kota 9 月之前
父节点
当前提交
d8e12ee03d
共有 1 个文件被更改,包括 26 次插入11 次删除
  1. 26 11
      app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt

+ 26 - 11
app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt

@@ -31,7 +31,8 @@ import autodagger.AutoInjector
 import com.afollestad.materialdialogs.LayoutMode.WRAP_CONTENT
 import com.afollestad.materialdialogs.MaterialDialog
 import com.afollestad.materialdialogs.bottomsheets.BottomSheet
-import com.afollestad.materialdialogs.datetime.dateTimePicker
+import com.afollestad.materialdialogs.datetime.datePicker
+import com.afollestad.materialdialogs.datetime.timePicker
 import com.google.android.material.dialog.MaterialAlertDialogBuilder
 import com.google.android.material.snackbar.Snackbar
 import com.nextcloud.android.common.ui.theme.utils.ColorRole
@@ -360,16 +361,9 @@ class ConversationInfoActivity :
                         currentTimeCalendar.timeInMillis = conversation!!.lobbyTimer * DateConstants.SECOND_DIVIDER
                     }
 
-                    dateTimePicker(
-                        minDateTime = Calendar.getInstance(),
-                        requireFutureDateTime = true,
-                        currentDateTime = currentTimeCalendar,
-                        show24HoursView = true,
-                        dateTimeCallback = { _, dateTime ->
-                            reconfigureLobbyTimerView(dateTime)
-                            submitLobbyChanges()
-                        }
-                    )
+                    datePicker { _, date ->
+                        showTimePicker(date)
+                    }
                 }
             }
 
@@ -383,6 +377,27 @@ class ConversationInfoActivity :
         }
     }
 
+    private fun showTimePicker(selectedDate: Calendar) {
+        val currentTime = Calendar.getInstance()
+        MaterialDialog(this, BottomSheet(WRAP_CONTENT)).show {
+            cancelable(false)
+            timePicker(
+                currentTime = Calendar.getInstance(),
+                show24HoursView = true,
+                timeCallback = { _, time ->
+                    selectedDate.set(Calendar.HOUR_OF_DAY, time.get(Calendar.HOUR_OF_DAY))
+                    selectedDate.set(Calendar.MINUTE, time.get(Calendar.MINUTE))
+                    if (selectedDate.timeInMillis < currentTime.timeInMillis) {
+                        selectedDate.set(Calendar.HOUR_OF_DAY, currentTime.get(Calendar.HOUR_OF_DAY))
+                        selectedDate.set(Calendar.MINUTE, currentTime.get(Calendar.MINUTE))
+                    }
+                    reconfigureLobbyTimerView(selectedDate)
+                    submitLobbyChanges()
+                }
+            )
+        }
+    }
+
     private fun webinaryRoomType(conversation: ConversationModel): Boolean {
         return conversation.type == ConversationEnums.ConversationType.ROOM_GROUP_CALL ||
             conversation.type == ConversationEnums.ConversationType.ROOM_PUBLIC_CALL