diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/AttachmentDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/AttachmentDialog.kt index 13a0564fb..7f7d75d45 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/AttachmentDialog.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/AttachmentDialog.kt @@ -26,23 +26,36 @@ import android.app.Activity import android.os.Bundle import android.view.View import android.view.ViewGroup +import autodagger.AutoInjector import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialog import com.nextcloud.talk.R +import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.controllers.ChatController import com.nextcloud.talk.databinding.DialogAttachmentBinding +import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.utils.database.user.CapabilitiesUtilNew +import javax.inject.Inject +@AutoInjector(NextcloudTalkApplication::class) class AttachmentDialog(val activity: Activity, var chatController: ChatController) : BottomSheetDialog(activity) { + @Inject + lateinit var viewThemeUtils: ViewThemeUtils + private lateinit var dialogAttachmentBinding: DialogAttachmentBinding + init { + NextcloudTalkApplication.sharedApplication?.componentApplication?.inject(this) + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) dialogAttachmentBinding = DialogAttachmentBinding.inflate(layoutInflater) setContentView(dialogAttachmentBinding.root) window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) + viewThemeUtils.themeDialog(dialogAttachmentBinding.root) initItemsStrings() initItemsVisibility() initItemsClickListeners() diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/AudioOutputDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/AudioOutputDialog.kt index 5e879e736..a1ffafecf 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/AudioOutputDialog.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/AudioOutputDialog.kt @@ -57,6 +57,7 @@ class AudioOutputDialog(val callActivity: CallActivity) : BottomSheetDialog(call setContentView(dialogAudioOutputBinding.root) window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) + viewThemeUtils.themeDialogDark(dialogAudioOutputBinding.root) updateOutputDeviceList() initClickListeners() } diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/ContactsBottomDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/ContactsBottomDialog.kt index d1decfc0d..cedad2eb1 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/ContactsBottomDialog.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/ContactsBottomDialog.kt @@ -35,6 +35,8 @@ import com.nextcloud.talk.R import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.controllers.bottomsheet.EntryMenuController import com.nextcloud.talk.databinding.DialogBottomContactsBinding +import com.nextcloud.talk.ui.theme.ViewThemeUtils +import javax.inject.Inject @AutoInjector(NextcloudTalkApplication::class) class ContactsBottomDialog( @@ -42,6 +44,9 @@ class ContactsBottomDialog( val bundle: Bundle ) : BottomSheetDialog(activity) { + @Inject + lateinit var viewThemeUtils: ViewThemeUtils + private var dialogRouter: Router? = null private lateinit var binding: DialogBottomContactsBinding @@ -56,6 +61,7 @@ class ContactsBottomDialog( setContentView(binding.root) window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) + viewThemeUtils.themeDialog(binding.root) executeEntryMenuController(bundle) } diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt index b23ec1b6b..589e60305 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt @@ -56,6 +56,7 @@ import com.nextcloud.talk.data.user.model.User import com.nextcloud.talk.databinding.DialogConversationOperationsBinding import com.nextcloud.talk.jobs.LeaveConversationWorker import com.nextcloud.talk.models.json.conversations.Conversation +import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.users.UserManager import com.nextcloud.talk.utils.Mimetype.TEXT_PLAIN import com.nextcloud.talk.utils.ShareUtils @@ -82,6 +83,9 @@ class ConversationsListBottomDialog( @Inject lateinit var ncApi: NcApi + @Inject + lateinit var viewThemeUtils: ViewThemeUtils + @Inject lateinit var userManager: UserManager @@ -95,6 +99,7 @@ class ConversationsListBottomDialog( setContentView(binding.root) window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) + viewThemeUtils.themeDialog(binding.root) initHeaderDescription() initItemsVisibility() initClickListeners() diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt index 8da1a0c5d..ebc38c366 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt @@ -32,17 +32,20 @@ import android.view.ViewGroup import android.view.inputmethod.InputMethodManager import androidx.annotation.NonNull import androidx.appcompat.content.res.AppCompatResources +import autodagger.AutoInjector import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialog import com.nextcloud.talk.BuildConfig import com.nextcloud.talk.R import com.nextcloud.talk.api.NcApi +import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.controllers.ChatController import com.nextcloud.talk.data.user.model.User import com.nextcloud.talk.databinding.DialogMessageActionsBinding import com.nextcloud.talk.models.json.chat.ChatMessage import com.nextcloud.talk.models.json.conversations.Conversation import com.nextcloud.talk.models.json.generic.GenericOverall +import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.database.user.CapabilitiesUtilNew import com.vanniktech.emoji.EmojiPopup @@ -53,7 +56,9 @@ import io.reactivex.Observer import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers +import javax.inject.Inject +@AutoInjector(NextcloudTalkApplication::class) class MessageActionsDialog( private val chatController: ChatController, private val message: ChatMessage, @@ -64,16 +69,24 @@ class MessageActionsDialog( private val ncApi: NcApi ) : BottomSheetDialog(chatController.activity!!) { + @Inject + lateinit var viewThemeUtils: ViewThemeUtils + private lateinit var dialogMessageActionsBinding: DialogMessageActionsBinding private lateinit var popup: EmojiPopup + init { + NextcloudTalkApplication.sharedApplication?.componentApplication?.inject(this) + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) dialogMessageActionsBinding = DialogMessageActionsBinding.inflate(layoutInflater) setContentView(dialogMessageActionsBinding.root) window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) + viewThemeUtils.themeDialog(dialogMessageActionsBinding.root) initEmojiBar(hasChatPermission) initMenuItemCopy(!message.isDeleted) initMenuReplyToMessage(message.replyable && hasChatPermission) diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/ScopeDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/ScopeDialog.kt index 4a18828df..ccbbce03b 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/ScopeDialog.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/ScopeDialog.kt @@ -26,13 +26,18 @@ import android.content.Context import android.os.Bundle import android.view.View import android.view.ViewGroup +import autodagger.AutoInjector import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialog import com.nextcloud.talk.R +import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.controllers.ProfileController import com.nextcloud.talk.databinding.DialogScopeBinding import com.nextcloud.talk.models.json.userprofile.Scope +import com.nextcloud.talk.ui.theme.ViewThemeUtils +import javax.inject.Inject +@AutoInjector(NextcloudTalkApplication::class) class ScopeDialog( con: Context, private val userInfoAdapter: ProfileController.UserInfoAdapter, @@ -40,8 +45,15 @@ class ScopeDialog( private val position: Int ) : BottomSheetDialog(con) { + @Inject + lateinit var viewThemeUtils: ViewThemeUtils + private lateinit var dialogScopeBinding: DialogScopeBinding + init { + NextcloudTalkApplication.sharedApplication?.componentApplication?.inject(this) + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) dialogScopeBinding = DialogScopeBinding.inflate(layoutInflater) @@ -49,6 +61,8 @@ class ScopeDialog( window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) + viewThemeUtils.themeDialog(dialogScopeBinding.root) + if (field == ProfileController.Field.DISPLAYNAME || field == ProfileController.Field.EMAIL) { dialogScopeBinding.scopePrivate.visibility = View.GONE } diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/SortingOrderDialogFragment.java b/app/src/main/java/com/nextcloud/talk/ui/dialog/SortingOrderDialogFragment.java index 75a239462..b2ba7bcaa 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/SortingOrderDialogFragment.java +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/SortingOrderDialogFragment.java @@ -120,6 +120,7 @@ public class SortingOrderDialogFragment extends DialogFragment implements View.O * find all relevant UI elements and set their values. */ private void setupDialogElements() { + viewThemeUtils.themeDialog(binding.root); viewThemeUtils.colorMaterialButtonPrimaryBorderless(binding.cancel); taggedViews = new View[12]; diff --git a/app/src/main/java/com/nextcloud/talk/ui/theme/ViewThemeUtils.kt b/app/src/main/java/com/nextcloud/talk/ui/theme/ViewThemeUtils.kt index 38eaee68c..eb5350486 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/theme/ViewThemeUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/theme/ViewThemeUtils.kt @@ -73,11 +73,13 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private /** * Scheme for painting elements */ - fun getScheme(context: Context): Scheme = when { + private fun getScheme(context: Context): Scheme = when { isDarkMode(context) -> theme.darkScheme else -> theme.lightScheme } + private fun getSchemeDark(): Scheme = theme.darkScheme + /** * Color for painting elements */ @@ -94,6 +96,10 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private block(getScheme(view.context)) } + private fun withSchemeDark(block: (Scheme) -> Unit) { + block(getSchemeDark()) + } + fun themeToolbar(toolbar: MaterialToolbar) { withScheme(toolbar) { scheme -> toolbar.setBackgroundColor(scheme.surface) @@ -144,6 +150,12 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private } } + fun themeDialogDark(view: View) { + withSchemeDark { scheme -> + view.setBackgroundColor(scheme.surface) + } + } + fun themeDialogDivider(view: View) { withScheme(view) { scheme -> view.setBackgroundColor(scheme.surfaceVariant) diff --git a/app/src/main/res/layout/sorting_order_fragment.xml b/app/src/main/res/layout/sorting_order_fragment.xml index be373868c..7c35be3cf 100644 --- a/app/src/main/res/layout/sorting_order_fragment.xml +++ b/app/src/main/res/layout/sorting_order_fragment.xml @@ -293,9 +293,12 @@ + android:gravity="end" + android:paddingStart="@dimen/dialog_padding" + android:paddingEnd="@dimen/dialog_padding" + android:paddingBottom="@dimen/dialog_padding_top_bottom"> -