mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-11 06:44:09 +01:00
Merge pull request #3677 from nextcloud/use-default-constructor
Fix: Use of parameterized constructor with fragments
This commit is contained in:
commit
36e0c13115
@ -4259,12 +4259,7 @@ class ChatActivity :
|
|||||||
|
|
||||||
val chatApiVersion = ApiUtils.getChatApiVersion(spreedCapabilities, intArrayOf(ApiUtils.API_V1, 1))
|
val chatApiVersion = ApiUtils.getChatApiVersion(spreedCapabilities, intArrayOf(ApiUtils.API_V1, 1))
|
||||||
|
|
||||||
val newFragment: DialogFragment = DateTimePickerFragment.newInstance(
|
val newFragment: DialogFragment = DateTimePickerFragment.newInstance(roomToken, message!!.id, chatApiVersion)
|
||||||
roomToken,
|
|
||||||
message!!.id,
|
|
||||||
chatViewModel,
|
|
||||||
chatApiVersion
|
|
||||||
)
|
|
||||||
newFragment.show(supportFragmentManager, DateTimePickerFragment.TAG)
|
newFragment.show(supportFragmentManager, DateTimePickerFragment.TAG)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -978,10 +978,7 @@ class ConversationsListActivity :
|
|||||||
updateFilterConversationButtonColor()
|
updateFilterConversationButtonColor()
|
||||||
|
|
||||||
binding.filterConversationsButton.setOnClickListener {
|
binding.filterConversationsButton.setOnClickListener {
|
||||||
val newFragment: DialogFragment = FilterConversationFragment.newInstance(
|
val newFragment = FilterConversationFragment.newInstance(filterState)
|
||||||
filterState,
|
|
||||||
this
|
|
||||||
)
|
|
||||||
newFragment.show(supportFragmentManager, FilterConversationFragment.TAG)
|
newFragment.show(supportFragmentManager, FilterConversationFragment.TAG)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,6 +37,7 @@ import com.google.android.material.timepicker.TimeFormat
|
|||||||
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
||||||
import com.nextcloud.talk.R
|
import com.nextcloud.talk.R
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||||
|
import com.nextcloud.talk.chat.ChatActivity
|
||||||
import com.nextcloud.talk.chat.viewmodels.ChatViewModel
|
import com.nextcloud.talk.chat.viewmodels.ChatViewModel
|
||||||
import com.nextcloud.talk.databinding.DialogDateTimePickerBinding
|
import com.nextcloud.talk.databinding.DialogDateTimePickerBinding
|
||||||
import com.nextcloud.talk.ui.theme.ViewThemeUtils
|
import com.nextcloud.talk.ui.theme.ViewThemeUtils
|
||||||
@ -47,18 +48,15 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
@Suppress("TooManyFunctions")
|
@Suppress("TooManyFunctions")
|
||||||
@AutoInjector(NextcloudTalkApplication::class)
|
@AutoInjector(NextcloudTalkApplication::class)
|
||||||
class DateTimePickerFragment(
|
class DateTimePickerFragment : DialogFragment() {
|
||||||
token: String,
|
|
||||||
id: String,
|
|
||||||
chatViewModel: ChatViewModel,
|
|
||||||
private val chatApiVersion: Int
|
|
||||||
) : DialogFragment() {
|
|
||||||
lateinit var binding: DialogDateTimePickerBinding
|
lateinit var binding: DialogDateTimePickerBinding
|
||||||
private var dialogView: View? = null
|
private var dialogView: View? = null
|
||||||
private var viewModel = chatViewModel
|
private lateinit var viewModel: ChatViewModel
|
||||||
private var currentTimeStamp: Long? = null
|
private var currentTimeStamp: Long? = null
|
||||||
private var roomToken = token
|
private lateinit var roomToken: String
|
||||||
private var messageId = id
|
private lateinit var messageId: String
|
||||||
|
private var chatApiVersion: Int = -1
|
||||||
private var laterTodayTimeStamp = 0L
|
private var laterTodayTimeStamp = 0L
|
||||||
private var tomorrowTimeStamp = 0L
|
private var tomorrowTimeStamp = 0L
|
||||||
private var weekendTimeStamp = 0L
|
private var weekendTimeStamp = 0L
|
||||||
@ -73,6 +71,12 @@ class DateTimePickerFragment(
|
|||||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||||
binding = DialogDateTimePickerBinding.inflate(LayoutInflater.from(context))
|
binding = DialogDateTimePickerBinding.inflate(LayoutInflater.from(context))
|
||||||
dialogView = binding.root
|
dialogView = binding.root
|
||||||
|
viewModel = (requireActivity() as ChatActivity).chatViewModel
|
||||||
|
arguments?.let {
|
||||||
|
roomToken = it.getString(TOKEN_ARG, "")
|
||||||
|
messageId = it.getString(ID_ARG, "")
|
||||||
|
chatApiVersion = it.getInt(CHAT_API_VERSION_ARG)
|
||||||
|
}
|
||||||
return MaterialAlertDialogBuilder(requireContext()).setView(dialogView).create()
|
return MaterialAlertDialogBuilder(requireContext()).setView(dialogView).create()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -304,14 +308,20 @@ class DateTimePickerFragment(
|
|||||||
private const val ONE_SEC = 1000
|
private const val ONE_SEC = 1000
|
||||||
private const val HOUR_EIGHT_AM = 8
|
private const val HOUR_EIGHT_AM = 8
|
||||||
private const val HOUR_SIX_PM = 18
|
private const val HOUR_SIX_PM = 18
|
||||||
|
private const val TOKEN_ARG = "TOKEN_ARG"
|
||||||
|
private const val ID_ARG = "ID_ARG"
|
||||||
|
private const val CHAT_API_VERSION_ARG = "CHAT_API_VERSION_ARG"
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun newInstance(token: String, id: String, chatViewModel: ChatViewModel, chatApiVersion: Int) =
|
fun newInstance(token: String, id: String, chatApiVersion: Int): DateTimePickerFragment {
|
||||||
DateTimePickerFragment(
|
val args = Bundle()
|
||||||
token,
|
args.putString(TOKEN_ARG, token)
|
||||||
id,
|
args.putString(ID_ARG, id)
|
||||||
chatViewModel,
|
args.putInt(CHAT_API_VERSION_ARG, chatApiVersion)
|
||||||
chatApiVersion
|
|
||||||
)
|
val dateTimePickerFragment = DateTimePickerFragment()
|
||||||
|
dateTimePickerFragment.arguments = args
|
||||||
|
return dateTimePickerFragment
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
package com.nextcloud.talk.ui.dialog
|
package com.nextcloud.talk.ui.dialog
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
@ -38,14 +39,10 @@ import com.nextcloud.talk.utils.UserIdUtils
|
|||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@AutoInjector(NextcloudTalkApplication::class)
|
@AutoInjector(NextcloudTalkApplication::class)
|
||||||
class FilterConversationFragment(
|
class FilterConversationFragment : DialogFragment() {
|
||||||
savedFilterState: MutableMap<String, Boolean>,
|
|
||||||
conversationsListActivity: ConversationsListActivity
|
|
||||||
) : DialogFragment() {
|
|
||||||
lateinit var binding: DialogFilterConversationBinding
|
lateinit var binding: DialogFilterConversationBinding
|
||||||
private var dialogView: View? = null
|
private var dialogView: View? = null
|
||||||
private var filterState = savedFilterState
|
private lateinit var filterState: HashMap<String, Boolean>
|
||||||
private var conversationsList = conversationsListActivity
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
lateinit var userManager: UserManager
|
lateinit var userManager: UserManager
|
||||||
@ -58,7 +55,11 @@ class FilterConversationFragment(
|
|||||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||||
binding = DialogFilterConversationBinding.inflate(LayoutInflater.from(context))
|
binding = DialogFilterConversationBinding.inflate(LayoutInflater.from(context))
|
||||||
dialogView = binding.root
|
dialogView = binding.root
|
||||||
|
filterState = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||||
|
arguments?.getSerializable(FILTER_STATE_ARG, HashMap::class.java) as HashMap<String, Boolean>
|
||||||
|
} else {
|
||||||
|
arguments?.getSerializable(FILTER_STATE_ARG) as HashMap<String, Boolean>
|
||||||
|
}
|
||||||
return MaterialAlertDialogBuilder(requireContext()).setView(dialogView).create()
|
return MaterialAlertDialogBuilder(requireContext()).setView(dialogView).create()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,15 +121,21 @@ class FilterConversationFragment(
|
|||||||
arbitraryStorageManager.storeStorageSetting(accountId, MENTION, mentionValue.toString(), "")
|
arbitraryStorageManager.storeStorageSetting(accountId, MENTION, mentionValue.toString(), "")
|
||||||
arbitraryStorageManager.storeStorageSetting(accountId, UNREAD, unreadValue.toString(), "")
|
arbitraryStorageManager.storeStorageSetting(accountId, UNREAD, unreadValue.toString(), "")
|
||||||
|
|
||||||
conversationsList.filterConversation()
|
(requireActivity() as ConversationsListActivity).filterConversation()
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
private const val FILTER_STATE_ARG = "FILTER_STATE_ARG"
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun newInstance(
|
fun newInstance(savedFilterState: MutableMap<String, Boolean>): FilterConversationFragment {
|
||||||
savedFilterState: MutableMap<String, Boolean>,
|
val filterConversationFragment = FilterConversationFragment()
|
||||||
conversationsListActivity: ConversationsListActivity
|
val args = Bundle()
|
||||||
) = FilterConversationFragment(savedFilterState, conversationsListActivity)
|
args.putSerializable(FILTER_STATE_ARG, HashMap(savedFilterState))
|
||||||
|
filterConversationFragment.arguments = args
|
||||||
|
return filterConversationFragment
|
||||||
|
}
|
||||||
|
|
||||||
val TAG: String = FilterConversationFragment::class.java.simpleName
|
val TAG: String = FilterConversationFragment::class.java.simpleName
|
||||||
const val MENTION: String = "mention"
|
const val MENTION: String = "mention"
|
||||||
const val UNREAD: String = "unread"
|
const val UNREAD: String = "unread"
|
||||||
|
@ -17,13 +17,18 @@
|
|||||||
~ You should have received a copy of the GNU General Public License
|
~ You should have received a copy of the GNU General Public License
|
||||||
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
-->
|
-->
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
tools:background="@color/white">
|
tools:background="@color/white">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@ -33,17 +38,17 @@
|
|||||||
<com.google.android.material.textview.MaterialTextView
|
<com.google.android.material.textview.MaterialTextView
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/nc_remind"
|
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
|
android:text="@string/nc_remind"
|
||||||
android:textSize="@dimen/md_title_textsize" />
|
android:textSize="@dimen/md_title_textsize" />
|
||||||
|
|
||||||
<com.google.android.material.textview.MaterialTextView
|
<com.google.android.material.textview.MaterialTextView
|
||||||
android:id="@+id/date_time_picker_timestamp"
|
android:id="@+id/date_time_picker_timestamp"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
tools:text="Apr 15th, 8:00 AM"
|
|
||||||
android:textSize="@dimen/supporting_text_text_size"
|
android:textSize="@dimen/supporting_text_text_size"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold"
|
||||||
|
tools:text="Apr 15th, 8:00 AM" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
@ -71,8 +76,8 @@
|
|||||||
android:id="@+id/date_time_picker_later_today_textview"
|
android:id="@+id/date_time_picker_later_today_textview"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textSize="@dimen/headline_text_size"
|
android:text=""
|
||||||
android:text="" />
|
android:textSize="@dimen/headline_text_size" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@ -94,8 +99,8 @@
|
|||||||
android:id="@+id/date_time_picker_tomorrow_textview"
|
android:id="@+id/date_time_picker_tomorrow_textview"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textSize="@dimen/headline_text_size"
|
android:text=""
|
||||||
android:text="" />
|
android:textSize="@dimen/headline_text_size" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@ -117,8 +122,8 @@
|
|||||||
android:id="@+id/date_time_picker_weekend_textview"
|
android:id="@+id/date_time_picker_weekend_textview"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textSize="@dimen/headline_text_size"
|
android:text=""
|
||||||
android:text="" />
|
android:textSize="@dimen/headline_text_size" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@ -140,8 +145,8 @@
|
|||||||
android:id="@+id/date_time_picker_next_week_textview"
|
android:id="@+id/date_time_picker_next_week_textview"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textSize="@dimen/headline_text_size"
|
android:text=""
|
||||||
android:text="" />
|
android:textSize="@dimen/headline_text_size" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<com.google.android.material.divider.MaterialDivider
|
<com.google.android.material.divider.MaterialDivider
|
||||||
@ -152,24 +157,24 @@
|
|||||||
android:id="@+id/date_time_picker_custom"
|
android:id="@+id/date_time_picker_custom"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:background="?android:attr/selectableItemBackground"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:padding="@dimen/standard_padding"
|
android:padding="@dimen/standard_padding">
|
||||||
android:background="?android:attr/selectableItemBackground">
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/date_time_picker_custom_icon"
|
android:id="@+id/date_time_picker_custom_icon"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:src="@drawable/baseline_calendar_month_24"
|
android:contentDescription="@string/calendar"
|
||||||
android:paddingEnd="@dimen/standard_double_padding"
|
android:paddingEnd="@dimen/standard_double_padding"
|
||||||
tools:ignore="RtlSymmetry"
|
android:src="@drawable/baseline_calendar_month_24"
|
||||||
android:contentDescription="@string/calendar" />
|
tools:ignore="RtlSymmetry" />
|
||||||
|
|
||||||
<com.google.android.material.textview.MaterialTextView
|
<com.google.android.material.textview.MaterialTextView
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/custom"
|
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
|
android:text="@string/custom"
|
||||||
android:textSize="@dimen/headline_text_size" />
|
android:textSize="@dimen/headline_text_size" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
@ -181,8 +186,8 @@
|
|||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:layout_weight="1"
|
||||||
android:layout_weight="1">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
android:id="@+id/button_delete"
|
android:id="@+id/button_delete"
|
||||||
@ -215,4 +220,5 @@
|
|||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
Loading…
Reference in New Issue
Block a user