-
Notifications
You must be signed in to change notification settings - Fork 168
Expand file tree
/
Copy pathComposeView.kt
More file actions
117 lines (111 loc) · 4.58 KB
/
Copy pathComposeView.kt
File metadata and controls
117 lines (111 loc) · 4.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/*
* Copyright (C) 2017 Moez Bhatti <moez.bhatti@gmail.com>
*
* This file is part of QKSMS.
*
* QKSMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* QKSMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with QKSMS. If not, see <http://www.gnu.org/licenses/>.
*/
package dev.octoshrimpy.quik.feature.compose
import android.net.Uri
import android.view.MenuItem
import android.view.View
import androidx.annotation.StringRes
import androidx.core.view.inputmethod.InputContentInfoCompat
import com.moez.QKSMS.common.QkMediaPlayer
import dev.octoshrimpy.quik.common.base.QkView
import dev.octoshrimpy.quik.common.widget.MicInputCloudView
import dev.octoshrimpy.quik.model.Attachment
import dev.octoshrimpy.quik.model.Recipient
import io.reactivex.Observable
import io.reactivex.subjects.Subject
interface ComposeView : QkView<ComposeState> {
companion object {
const val SELECT_CONTACT_REQUEST_CODE = 0
const val TAKE_PHOTOS_REQUEST_CODE = 1
const val SPEECH_RECOGNITION_REQUEST_CODE = 5
const val CAMERA_DESTINATION_KEY = "camera_destination"
}
val activityVisibleIntent: Observable<Boolean>
val chipsSelectedIntent: Subject<HashMap<String, String?>>
val chipDeletedIntent: Subject<Recipient>
val menuReadyIntent: Observable<Unit>
val optionsItemIntent: Observable<Int>
val contextItemIntent: Observable<MenuItem>
val sendAsGroupIntent: Observable<Unit>
val messagePartClickIntent: Subject<Long>
val messagePartContextMenuRegistrar: Subject<View>
val messagesSelectedIntent: Observable<List<Long>>
val cancelDelayedIntent: Subject<Long>
val sendDelayedNowIntent: Subject<Long>
val resendIntent: Subject<Long>
val attachmentDeletedIntent: Subject<Attachment>
val textChangedIntent: Observable<CharSequence>
val attachIntent: Observable<Unit>
val cameraIntent: Observable<*>
val attachAnyFileIntent: Observable<*>
val attachImageFileIntent: Observable<*>
val scheduleIntent: Observable<*>
val scheduleAction: Observable<*>
val attachContactIntent: Observable<*>
val attachAnyFileSelectedIntent: Observable<Uri>
val contactSelectedIntent: Observable<Uri>
val inputContentIntent: Observable<InputContentInfoCompat>
val scheduleSelectedIntent: Observable<Long>
val scheduleCancelIntent: Observable<*>
val changeSimIntent: Observable<*>
val sendIntent: Observable<Unit>
val viewQksmsPlusIntent: Subject<Unit>
val backPressedIntent: Observable<Unit>
val confirmDeleteIntent: Observable<List<Long>>
val clearCurrentMessageIntent: Subject<Boolean>
val messageLinkAskIntent: Observable<Uri>
val reactionClickIntent: Subject<Long>
val speechRecogniserIntent: Observable<*>
val shadeIntent: Observable<Unit>
val recordAudioStartStopRecording: Subject<Boolean>
val recordAnAudioMessage: Observable<Unit>
val recordAudioAbort: Observable<Unit>
val recordAudioAttach: Observable<Unit>
val recordAudioPlayerPlayPause: Observable<QkMediaPlayer.PlayingState>
val recordAudioPlayerConfigUI: Subject<QkMediaPlayer.PlayingState>
val recordAudioPlayerVisible: Subject<Boolean>
val recordAudioMsgRecordVisible: Subject<Boolean>
val recordAudioRecord: Subject<MicInputCloudView.ViewState>
val recordAudioChronometer: Subject<Boolean>
fun clearSelection()
fun toggleSelectAll()
fun expandMessages(messageIds: List<Long>, expand: Boolean)
fun showDetails(details: String)
fun showMessageLinkAskDialog(uri: Uri)
fun requestDefaultSms()
fun requestStoragePermission()
fun requestRecordAudioPermission()
fun requestSmsPermission()
fun showContacts(sharing: Boolean, chips: List<Recipient>)
fun themeChanged()
fun showKeyboard()
fun requestCamera()
fun requestGallery()
fun requestFilePicker()
fun requestDatePicker()
fun requestContact()
fun setDraft(draft: String)
fun scrollToMessage(id: Long)
fun showQksmsPlusSnackbar(@StringRes message: Int)
fun showDeleteDialog( messages: List<Long>)
fun showClearCurrentMessageDialog()
fun showReactionsDialog(reactions: List<String>)
fun startSpeechRecognition()
fun focusMessage()
}