Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
e
os
Message
Commits
8e4ff3ec
Commit
8e4ff3ec
authored
Nov 24, 2019
by
Moez Bhatti
Browse files
Persist camera destination uri
Fixes #1457
parent
65fd1cac
Changes
2
Hide whitespace changes
Inline
Side-by-side
presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeActivity.kt
View file @
8e4ff3ec
...
...
@@ -73,10 +73,12 @@ import kotlin.collections.HashMap
class
ComposeActivity
:
QkThemedActivity
(),
ComposeView
{
companion
object
{
private
const
val
SELECT_CONTACT_REQUEST_CODE
=
0
private
const
val
TAKE_PHOTO_REQUEST_CODE
=
1
private
const
val
ATTACH_PHOTO_REQUEST_CODE
=
2
private
const
val
ATTACH_CONTACT_REQUEST_CODE
=
3
private
const
val
SelectContactRequestCode
=
0
private
const
val
TakePhotoRequestCode
=
1
private
const
val
AttachPhotoRequestCode
=
2
private
const
val
AttachContactRequestCode
=
3
private
const
val
CameraDestinationKey
=
"camera_destination"
}
@Inject
lateinit
var
attachmentAdapter
:
AttachmentAdapter
...
...
@@ -281,7 +283,7 @@ class ComposeActivity : QkThemedActivity(), ComposeView {
val
intent
=
Intent
(
Intent
.
ACTION_PICK
)
.
setType
(
ContactsContract
.
CommonDataKinds
.
Phone
.
CONTENT_TYPE
)
startActivityForResult
(
Intent
.
createChooser
(
intent
,
null
),
A
TTACH_CONTACT_REQUEST_CODE
)
startActivityForResult
(
Intent
.
createChooser
(
intent
,
null
),
A
ttachContactRequestCode
)
}
override
fun
showContacts
(
sharing
:
Boolean
,
chips
:
List
<
Chip
>)
{
...
...
@@ -290,7 +292,7 @@ class ComposeActivity : QkThemedActivity(), ComposeView {
val
intent
=
Intent
(
this
,
ContactsActivity
::
class
.
java
)
.
putExtra
(
ContactsActivity
.
SharingKey
,
sharing
)
.
putExtra
(
ContactsActivity
.
ChipsKey
,
serialized
)
startActivityForResult
(
intent
,
S
ELECT_CONTACT_REQUEST_CODE
)
startActivityForResult
(
intent
,
S
electContactRequestCode
)
}
override
fun
showKeyboard
()
{
...
...
@@ -306,7 +308,7 @@ class ComposeActivity : QkThemedActivity(), ComposeView {
val
intent
=
Intent
(
MediaStore
.
ACTION_IMAGE_CAPTURE
)
.
putExtra
(
MediaStore
.
EXTRA_OUTPUT
,
cameraDestination
)
startActivityForResult
(
Intent
.
createChooser
(
intent
,
null
),
T
AKE_PHOTO_REQUEST_CODE
)
startActivityForResult
(
Intent
.
createChooser
(
intent
,
null
),
T
akePhotoRequestCode
)
}
override
fun
requestGallery
()
{
...
...
@@ -316,7 +318,7 @@ class ComposeActivity : QkThemedActivity(), ComposeView {
.
putExtra
(
Intent
.
EXTRA_LOCAL_ONLY
,
false
)
.
addFlags
(
Intent
.
FLAG_GRANT_READ_URI_PERMISSION
)
.
setType
(
"image/*"
)
startActivityForResult
(
Intent
.
createChooser
(
intent
,
null
),
A
TTACH_PHOTO_REQUEST_CODE
)
startActivityForResult
(
Intent
.
createChooser
(
intent
,
null
),
A
ttachPhotoRequestCode
)
}
override
fun
setDraft
(
draft
:
String
)
=
message
.
setText
(
draft
)
...
...
@@ -352,28 +354,38 @@ class ComposeActivity : QkThemedActivity(), ComposeView {
override
fun
onActivityResult
(
requestCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?)
{
when
{
requestCode
==
S
ELECT_CONTACT_REQUEST_CODE
->
{
requestCode
==
S
electContactRequestCode
->
{
chipsSelectedIntent
.
onNext
(
data
?.
getSerializableExtra
(
ContactsActivity
.
ChipsKey
)
?.
let
{
serializable
->
serializable
as
?
HashMap
<
String
,
String
?>
}
?:
hashMapOf
())
}
requestCode
==
T
AKE_PHOTO_REQUEST_CODE
&&
resultCode
==
Activity
.
RESULT_OK
->
{
requestCode
==
T
akePhotoRequestCode
&&
resultCode
==
Activity
.
RESULT_OK
->
{
cameraDestination
?.
let
(
attachmentSelectedIntent
::
onNext
)
}
requestCode
==
A
TTACH_PHOTO_REQUEST_CODE
&&
resultCode
==
Activity
.
RESULT_OK
->
{
requestCode
==
A
ttachPhotoRequestCode
&&
resultCode
==
Activity
.
RESULT_OK
->
{
data
?.
clipData
?.
itemCount
?.
let
{
count
->
0
until
count
}
?.
mapNotNull
{
i
->
data
.
clipData
?.
getItemAt
(
i
)
?.
uri
}
?.
forEach
(
attachmentSelectedIntent
::
onNext
)
?:
data
?.
data
?.
let
(
attachmentSelectedIntent
::
onNext
)
}
requestCode
==
A
TTACH_CONTACT_REQUEST_CODE
&&
resultCode
==
Activity
.
RESULT_OK
->
{
requestCode
==
A
ttachContactRequestCode
&&
resultCode
==
Activity
.
RESULT_OK
->
{
data
?.
data
?.
let
(
contactSelectedIntent
::
onNext
)
}
else
->
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
}
}
override
fun
onSaveInstanceState
(
outState
:
Bundle
)
{
outState
.
putParcelable
(
CameraDestinationKey
,
cameraDestination
)
super
.
onSaveInstanceState
(
outState
)
}
override
fun
onRestoreInstanceState
(
savedInstanceState
:
Bundle
?)
{
cameraDestination
=
savedInstanceState
?.
getParcelable
(
CameraDestinationKey
)
super
.
onRestoreInstanceState
(
savedInstanceState
)
}
override
fun
onBackPressed
()
=
backPressedIntent
.
onNext
(
Unit
)
}
presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeViewModel.kt
View file @
8e4ff3ec
...
...
@@ -493,7 +493,7 @@ class ComposeViewModel @Inject constructor(
view
.
attachmentSelectedIntent
.
map
{
uri
->
Attachment
.
Image
(
uri
)
},
view
.
inputContentIntent
.
map
{
inputContent
->
Attachment
.
Image
(
inputContent
=
inputContent
)
})
.
withLatestFrom
(
attachments
)
{
attachment
,
attachments
->
attachments
+
attachment
}
.
doOnNext
{
attachments
.
onNext
(
it
)
}
.
doOnNext
(
attachments
::
onNext
)
.
autoDisposable
(
view
.
scope
())
.
subscribe
{
newState
{
copy
(
attaching
=
false
)
}
}
...
...
Fahim Salam Chowdhury
👽
@fahim44
mentioned in commit
31ff353b
·
May 12, 2022
mentioned in commit
31ff353b
mentioned in commit 31ff353b417325a975e3e7366022935a6bff6b32
Toggle commit list
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment