Skip to content

Commit

Permalink
Merge pull request #20 from AmityCo/release-tuna
Browse files Browse the repository at this point in the history
Update to Tuna release
  • Loading branch information
trustratch authored Oct 21, 2022
2 parents b8aa01f + b4d084a commit 7fbe564
Show file tree
Hide file tree
Showing 13 changed files with 164 additions and 58 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import android.content.Intent
import android.content.pm.ActivityInfo
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.os.Looper
Expand Down Expand Up @@ -76,10 +77,21 @@ class AmityChatRoomWithDefaultComposeBarFragment : AmityPickerFragment(),
private var isReachBottom = true


private val requiredPermissions = arrayOf(
Manifest.permission.RECORD_AUDIO,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
private val requiredPermissions = if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
arrayOf(
Manifest.permission.RECORD_AUDIO,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
} else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
arrayOf(
Manifest.permission.RECORD_AUDIO,
Manifest.permission.READ_MEDIA_AUDIO
)
} else {
arrayOf(
Manifest.permission.RECORD_AUDIO
)
}

private val recordPermission =
registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { permissions ->
Expand Down Expand Up @@ -494,7 +506,11 @@ class AmityChatRoomWithDefaultComposeBarFragment : AmityPickerFragment(),
.forResult(AmityConstants.PICK_IMAGES)
}
}else {
pickMultipleImagesPermission.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE)
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
pickMultipleImagesPermission.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE)
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
pickMultipleImagesPermission.launch(Manifest.permission.READ_MEDIA_IMAGES)
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,18 +87,25 @@ abstract class AmityBaseActivity<T : ViewDataBinding, V : AmityBaseViewModel> :
}

fun requestPermission(permission: String, requestCode: Int) {
ActivityCompat.requestPermissions(
this, arrayOf(
permission
), requestCode
)
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
ActivityCompat.requestPermissions(
this, arrayOf(
permission
), requestCode
)
} else{
requestPermissions(arrayOf(permission), requestCode)
}
}

fun requestPermission(permission: Array<String>, requestCode: Int) {
ActivityCompat.requestPermissions(
this,
permission, requestCode
)
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
ActivityCompat.requestPermissions(
this, permission, requestCode
)
} else{
requestPermissions(permission, requestCode)
}
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,21 +63,30 @@ open class AmityBaseFragment : RxFragment() {
}

fun requestPermission(permission: String, requestCode: Int) {
(activity as? Activity)?.let {
ActivityCompat.requestPermissions(
it, arrayOf(
permission
), requestCode
)
(activity as? Activity)?.let { activity ->
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
ActivityCompat.requestPermissions(
activity,
arrayOf(permission),
requestCode
)
} else{
requestPermissions(arrayOf(permission), requestCode)
}
}
}

fun requestPermission(permission: Array<String>, requestCode: Int) {
(activity as? Activity)?.let {
ActivityCompat.requestPermissions(
it,
permission, requestCode
)
(activity as? Activity)?.let { activity ->
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
ActivityCompat.requestPermissions(
activity,
permission,
requestCode
)
} else{
requestPermissions(permission, requestCode)
}
}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.amity.socialcloud.uikit.common.base

import android.Manifest
import android.net.Uri
import android.os.Build
import androidx.activity.result.contract.ActivityResultContracts
import com.amity.socialcloud.uikit.common.R
import com.amity.socialcloud.uikit.common.common.showSnackBar
Expand Down Expand Up @@ -69,9 +70,11 @@ abstract class AmityPickerFragment : AmityBaseFragment() {
abstract fun onPhotoClicked(file: File?)

fun pickImage() {

pickImagePermission.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE)

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
pickImagePermission.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE)
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
pickImagePermission.launch(Manifest.permission.READ_MEDIA_IMAGES)
}
}

fun pickFile() {
Expand All @@ -80,13 +83,17 @@ abstract class AmityPickerFragment : AmityBaseFragment() {
}

fun takePicture() {

cameraPermission.launch(
val permissions = if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
arrayOf(
Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
)
} else {
arrayOf(
Manifest.permission.CAMERA
)
}
cameraPermission.launch(permissions)
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,11 @@ class AmityAudioRecorderView : ConstraintLayout {

if (recordedTime < 1000) {
audioFile?.delete()
mListener?.showMessage()
try {
mListener?.showMessage()
} catch(e: Exception) {
Log.e("EkoAudioRecorderView", "stopRecording: Recorded time is less than 1 second")
}
} else {
if (!fileSent) {
mListener?.onFileRecorded(audioFile)
Expand Down
6 changes: 3 additions & 3 deletions sample/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ apply plugin: 'kotlin-kapt'
apply plugin: 'com.google.gms.google-services'

android {
compileSdkVersion 31
compileSdkVersion 33
buildToolsVersion "30.0.3"

defaultConfig {
applicationId "com.amity.sample.ascuikit"
minSdkVersion 21
targetSdkVersion 30
targetSdkVersion 33
versionCode 1
versionName "2.26.1"
versionName "2.28.0"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
Expand Down
15 changes: 14 additions & 1 deletion sample/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,20 @@

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />

<queries>
<intent>
<action android:name="android.media.action.IMAGE_CAPTURE" />
</intent>
<intent>
<action android:name="android.media.action.VIDEO_CAPTURE" />
</intent>
</queries>

<uses-feature android:name="android.hardware.camera.any" />

<uses-permission android:name="android.permission.CAMERA" />
Expand All @@ -25,7 +37,8 @@
<activity android:name=".AmityPostCreatorWithOptionsActivity" />
<activity android:name=".AmityPostCreatorSettingsActivity" />
<activity android:name=".env.EnvironmentActivity"/>
<activity android:name=".MainActivity">
<activity android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ object SampleAPIKey {
return "b0ecee0c39dca1651d628b1c535d15dbd30ad9b0eb3c3a2f"
}
STAGING -> {
return "b3bee858328ef4344a308e4a5a091688d05fdee2be353a2b"
return "b0efe90c3bdda2304d628918520c1688845889e4bc363d2c"
}
PRODUCTION_SG -> {
return "b3bee90c39d9a5644831d84e5a0d1688d100ddebef3c6e78"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -204,12 +204,12 @@ class AmityCommunityHomePageFragment : Fragment() {
searchView.setOnQueryTextListener(queryTextListener)

searchMenuItem.setOnActionExpandListener(object : MenuItem.OnActionExpandListener {
override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
override fun onMenuItemActionExpand(item: MenuItem): Boolean {
viewModel.isSearchMode.set(true)
return true
}

override fun onMenuItemActionCollapse(item: MenuItem?): Boolean {
override fun onMenuItemActionCollapse(item: MenuItem): Boolean {
viewModel.isSearchMode.set(false)
return true
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import android.content.Intent
import android.content.pm.ActivityInfo
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.provider.MediaStore
import android.text.Editable
Expand Down Expand Up @@ -502,23 +503,38 @@ abstract class AmityBaseCreatePostFragment : AmityBaseFragment(),
}

private fun grantStoragePermission(requestCode: Int, onPermissionGrant: () -> Unit) {
if (hasPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
val requiredPermissions = emptyList<String>().toMutableList()
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
requiredPermissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE)
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
when(requestCode){
REQUEST_STORAGE_PERMISSION_IMAGE_UPLOAD -> requiredPermissions.add(Manifest.permission.READ_MEDIA_IMAGES)
REQUEST_STORAGE_PERMISSION_VIDEO_UPLOAD -> requiredPermissions.add(Manifest.permission.READ_MEDIA_VIDEO)
}
}
val hasRequiredPermission = requiredPermissions.fold(true) { acc, permission ->
acc && hasPermission(permission)
}
if (hasRequiredPermission) {
onPermissionGrant()
} else {
requestPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, requestCode)
requestPermission(requiredPermissions.toTypedArray(), requestCode)
}
}

private fun grantCameraPermission(requestCode: Int, onPermissionGrant: () -> Unit) {
if (hasPermission(Manifest.permission.CAMERA) && hasPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
val requiredPermissions = mutableListOf(Manifest.permission.CAMERA)
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
requiredPermissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE)
}
val hasRequiredPermission = requiredPermissions.fold(true) { acc, permission ->
acc && hasPermission(permission)
}
if (hasRequiredPermission) {
onPermissionGrant()
} else {
requestPermission(
arrayOf(
Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE
), requestCode
)
requestPermission(requiredPermissions.toTypedArray(), requestCode)
}
}

Expand Down Expand Up @@ -782,10 +798,13 @@ abstract class AmityBaseCreatePostFragment : AmityBaseFragment(),
}
}
AmityConstants.CAPTURE_VIDEO -> {
photoFile?.also {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
data?.data
} else {
photoFile?.let(Uri::fromFile)
}?.let { contentUri ->
setupImageAdapter()
val mediaScanIntent = Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE)
val contentUri = Uri.fromFile(photoFile)
mediaScanIntent.data = contentUri
activity?.sendBroadcast(mediaScanIntent)
val videos = viewModel.addMedia(listOf(contentUri), PostMedia.Type.VIDEO)
Expand Down Expand Up @@ -1015,7 +1034,9 @@ abstract class AmityBaseCreatePostFragment : AmityBaseFragment(),
Intent(MediaStore.ACTION_VIDEO_CAPTURE).also { takePictureIntent ->
// Ensure that there's a camera activity to handle the intent
takePictureIntent.resolveActivity(requireActivity().packageManager)?.also {
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri)
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri)
}
startActivityForResult(takePictureIntent, AmityConstants.CAPTURE_VIDEO)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class AmityUserMention private constructor() : Mentionable {
return 0
}

override fun writeToParcel(dest: Parcel?, flags: Int) {
override fun writeToParcel(dest: Parcel, flags: Int) {
dest?.writeParcelable(user, 0)
}

Expand Down
Loading

0 comments on commit 7fbe564

Please sign in to comment.