|
@@ -51,6 +51,7 @@ import android.os.SystemClock
|
|
import android.os.VibrationEffect
|
|
import android.os.VibrationEffect
|
|
import android.os.Vibrator
|
|
import android.os.Vibrator
|
|
import android.provider.ContactsContract
|
|
import android.provider.ContactsContract
|
|
|
|
+import android.provider.MediaStore
|
|
import android.text.Editable
|
|
import android.text.Editable
|
|
import android.text.InputFilter
|
|
import android.text.InputFilter
|
|
import android.text.TextUtils
|
|
import android.text.TextUtils
|
|
@@ -204,6 +205,7 @@ import java.io.IOException
|
|
import java.net.HttpURLConnection
|
|
import java.net.HttpURLConnection
|
|
import java.text.SimpleDateFormat
|
|
import java.text.SimpleDateFormat
|
|
import java.util.Date
|
|
import java.util.Date
|
|
|
|
+import java.util.Locale
|
|
import java.util.Objects
|
|
import java.util.Objects
|
|
import java.util.concurrent.ExecutionException
|
|
import java.util.concurrent.ExecutionException
|
|
import javax.inject.Inject
|
|
import javax.inject.Inject
|
|
@@ -1089,8 +1091,7 @@ class ChatController(args: Bundle) :
|
|
|
|
|
|
@SuppressLint("SimpleDateFormat")
|
|
@SuppressLint("SimpleDateFormat")
|
|
private fun setVoiceRecordFileName() {
|
|
private fun setVoiceRecordFileName() {
|
|
- val pattern = "yyyy-MM-dd HH-mm-ss"
|
|
|
|
- val simpleDateFormat = SimpleDateFormat(pattern)
|
|
|
|
|
|
+ val simpleDateFormat = SimpleDateFormat(FILE_DATE_PATTERN)
|
|
val date: String = simpleDateFormat.format(Date())
|
|
val date: String = simpleDateFormat.format(Date())
|
|
|
|
|
|
val fileNameWithoutSuffix = String.format(
|
|
val fileNameWithoutSuffix = String.format(
|
|
@@ -3253,6 +3254,28 @@ class ChatController(args: Bundle) :
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ fun sendVideoFromCamIntent() {
|
|
|
|
+ Intent(MediaStore.ACTION_VIDEO_CAPTURE).also { takeVideoIntent ->
|
|
|
|
+ takeVideoIntent.resolveActivity(activity!!.packageManager)?.also {
|
|
|
|
+ val videoFile: File? = try {
|
|
|
|
+ val outputDir = context.cacheDir
|
|
|
|
+ val dateFormat = SimpleDateFormat(FILE_DATE_PATTERN, Locale.ROOT)
|
|
|
|
+ val date = dateFormat.format(Date())
|
|
|
|
+ File("$outputDir/$VIDEO_PREFIX_PART$date$VIDEO_SUFFIX")
|
|
|
|
+ } catch (e: IOException) {
|
|
|
|
+ Log.e(TAG, "error while creating video file", e)
|
|
|
|
+ null
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ videoFile?.also {
|
|
|
|
+ val videoURI: Uri = FileProvider.getUriForFile(context, context.packageName, it)
|
|
|
|
+ takeVideoIntent.putExtra(MediaStore.EXTRA_OUTPUT, videoURI)
|
|
|
|
+ startActivityForResult(takeVideoIntent, REQUEST_CODE_PICK_CAMERA)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
fun createPoll() {
|
|
fun createPoll() {
|
|
val pollVoteDialog = PollCreateDialogFragment.newInstance(
|
|
val pollVoteDialog = PollCreateDialogFragment.newInstance(
|
|
roomToken!!
|
|
roomToken!!
|
|
@@ -3288,6 +3311,9 @@ class ChatController(args: Bundle) :
|
|
private const val VOICE_RECORD_CANCEL_SLIDER_X: Int = -50
|
|
private const val VOICE_RECORD_CANCEL_SLIDER_X: Int = -50
|
|
private const val VOICE_MESSAGE_META_DATA = "{\"messageType\":\"voice-message\"}"
|
|
private const val VOICE_MESSAGE_META_DATA = "{\"messageType\":\"voice-message\"}"
|
|
private const val VOICE_MESSAGE_FILE_SUFFIX = ".mp3"
|
|
private const val VOICE_MESSAGE_FILE_SUFFIX = ".mp3"
|
|
|
|
+ private const val FILE_DATE_PATTERN = "yyyy-MM-dd HH-mm-ss"
|
|
|
|
+ private const val VIDEO_PREFIX_PART = "Talk Video "
|
|
|
|
+ private const val VIDEO_SUFFIX = ".mp4"
|
|
private const val SHORT_VIBRATE: Long = 20
|
|
private const val SHORT_VIBRATE: Long = 20
|
|
private const val FULLY_OPAQUE_INT: Int = 255
|
|
private const val FULLY_OPAQUE_INT: Int = 255
|
|
private const val SEMI_TRANSPARENT_INT: Int = 99
|
|
private const val SEMI_TRANSPARENT_INT: Int = 99
|