mirror of
https://github.com/SimpleMobileTools/Simple-Voice-Recorder.git
synced 2025-04-28 16:58:44 +02:00
add handling for the new Post Notifications permission
This commit is contained in:
parent
89ff5cdb1f
commit
dc9cd511a8
@ -63,7 +63,7 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'com.github.SimpleMobileTools:Simple-Commons:b2a2c40a27'
|
implementation 'com.github.SimpleMobileTools:Simple-Commons:7cfc56e855'
|
||||||
implementation 'org.greenrobot:eventbus:3.3.1'
|
implementation 'org.greenrobot:eventbus:3.3.1'
|
||||||
implementation 'com.github.Armen101:AudioRecordView:1.0.4'
|
implementation 'com.github.Armen101:AudioRecordView:1.0.4'
|
||||||
implementation 'androidx.documentfile:documentfile:1.0.1'
|
implementation 'androidx.documentfile:documentfile:1.0.1'
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||||
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||||
<uses-permission
|
<uses-permission
|
||||||
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
||||||
android:maxSdkVersion="29" />
|
android:maxSdkVersion="29" />
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
package com.simplemobiletools.voicerecorder.activities
|
package com.simplemobiletools.voicerecorder.activities
|
||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import com.simplemobiletools.commons.extensions.toast
|
||||||
|
import com.simplemobiletools.commons.helpers.PERMISSION_POST_NOTIFICATIONS
|
||||||
|
import com.simplemobiletools.voicerecorder.R
|
||||||
import com.simplemobiletools.voicerecorder.services.RecorderService
|
import com.simplemobiletools.voicerecorder.services.RecorderService
|
||||||
|
|
||||||
class BackgroundRecordActivity : SimpleActivity() {
|
class BackgroundRecordActivity : SimpleActivity() {
|
||||||
@ -11,6 +14,8 @@ class BackgroundRecordActivity : SimpleActivity() {
|
|||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
if (intent.action == RECORD_INTENT_ACTION) {
|
if (intent.action == RECORD_INTENT_ACTION) {
|
||||||
|
handlePermission(PERMISSION_POST_NOTIFICATIONS) {
|
||||||
|
if (it) {
|
||||||
Intent(this@BackgroundRecordActivity, RecorderService::class.java).apply {
|
Intent(this@BackgroundRecordActivity, RecorderService::class.java).apply {
|
||||||
try {
|
try {
|
||||||
if (RecorderService.isRunning) {
|
if (RecorderService.isRunning) {
|
||||||
@ -21,6 +26,10 @@ class BackgroundRecordActivity : SimpleActivity() {
|
|||||||
} catch (ignored: Exception) {
|
} catch (ignored: Exception) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
toast(R.string.no_post_notifications_permissions)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
moveTaskToBack(true)
|
moveTaskToBack(true)
|
||||||
finish()
|
finish()
|
||||||
|
@ -6,8 +6,11 @@ import android.graphics.drawable.Drawable
|
|||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
import android.util.AttributeSet
|
import android.util.AttributeSet
|
||||||
|
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.*
|
||||||
|
import com.simplemobiletools.commons.helpers.PERMISSION_POST_NOTIFICATIONS
|
||||||
import com.simplemobiletools.commons.helpers.isNougatPlus
|
import com.simplemobiletools.commons.helpers.isNougatPlus
|
||||||
|
import com.simplemobiletools.commons.helpers.isTiramisuPlus
|
||||||
import com.simplemobiletools.voicerecorder.R
|
import com.simplemobiletools.voicerecorder.R
|
||||||
import com.simplemobiletools.voicerecorder.helpers.*
|
import com.simplemobiletools.voicerecorder.helpers.*
|
||||||
import com.simplemobiletools.voicerecorder.models.Events
|
import com.simplemobiletools.voicerecorder.models.Events
|
||||||
@ -25,7 +28,10 @@ class RecorderFragment(context: Context, attributeSet: AttributeSet) : MyViewPag
|
|||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
setupColors()
|
setupColors()
|
||||||
if (!RecorderService.isRunning) status = RECORDING_STOPPED
|
if (!RecorderService.isRunning) {
|
||||||
|
status = RECORDING_STOPPED
|
||||||
|
}
|
||||||
|
|
||||||
refreshView()
|
refreshView()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,7 +49,17 @@ class RecorderFragment(context: Context, attributeSet: AttributeSet) : MyViewPag
|
|||||||
|
|
||||||
updateRecordingDuration(0)
|
updateRecordingDuration(0)
|
||||||
toggle_recording_button.setOnClickListener {
|
toggle_recording_button.setOnClickListener {
|
||||||
|
if (isTiramisuPlus()) {
|
||||||
|
(context as? BaseSimpleActivity)?.handlePermission(PERMISSION_POST_NOTIFICATIONS) {
|
||||||
|
if (it) {
|
||||||
toggleRecording()
|
toggleRecording()
|
||||||
|
} else {
|
||||||
|
context.toast(R.string.no_post_notifications_permissions)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
toggleRecording()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
toggle_pause_button.setOnClickListener {
|
toggle_pause_button.setOnClickListener {
|
||||||
|
@ -50,7 +50,8 @@ class MyWidgetRecordDisplayProvider : AppWidgetProvider() {
|
|||||||
private fun setupAppOpenIntent(context: Context, views: RemoteViews) {
|
private fun setupAppOpenIntent(context: Context, views: RemoteViews) {
|
||||||
Intent(context, BackgroundRecordActivity::class.java).apply {
|
Intent(context, BackgroundRecordActivity::class.java).apply {
|
||||||
action = BackgroundRecordActivity.RECORD_INTENT_ACTION
|
action = BackgroundRecordActivity.RECORD_INTENT_ACTION
|
||||||
val pendingIntent = PendingIntent.getActivity(context, OPEN_APP_INTENT_ID, this, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
val pendingIntent =
|
||||||
|
PendingIntent.getActivity(context, OPEN_APP_INTENT_ID, this, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||||
views.setOnClickPendingIntent(R.id.record_display_btn, pendingIntent)
|
views.setOnClickPendingIntent(R.id.record_display_btn, pendingIntent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,9 @@ import android.provider.MediaStore
|
|||||||
import android.provider.MediaStore.Audio.Media
|
import android.provider.MediaStore.Audio.Media
|
||||||
import androidx.core.app.NotificationCompat
|
import androidx.core.app.NotificationCompat
|
||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.*
|
||||||
import com.simplemobiletools.commons.helpers.*
|
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
||||||
|
import com.simplemobiletools.commons.helpers.isOreoPlus
|
||||||
|
import com.simplemobiletools.commons.helpers.isRPlus
|
||||||
import com.simplemobiletools.voicerecorder.R
|
import com.simplemobiletools.voicerecorder.R
|
||||||
import com.simplemobiletools.voicerecorder.activities.SplashActivity
|
import com.simplemobiletools.voicerecorder.activities.SplashActivity
|
||||||
import com.simplemobiletools.voicerecorder.extensions.config
|
import com.simplemobiletools.voicerecorder.extensions.config
|
||||||
|
@ -66,6 +66,7 @@
|
|||||||
android:layout_centerVertical="true"
|
android:layout_centerVertical="true"
|
||||||
android:paddingStart="@dimen/activity_margin"
|
android:paddingStart="@dimen/activity_margin"
|
||||||
android:paddingEnd="@dimen/activity_margin" />
|
android:paddingEnd="@dimen/activity_margin" />
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
@ -75,6 +76,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alignParentEnd="true"
|
android:layout_alignParentEnd="true"
|
||||||
android:layout_alignParentBottom="true"
|
android:layout_alignParentBottom="true"
|
||||||
|
android:layout_marginTop="@dimen/small_margin"
|
||||||
android:text="@string/ok" />
|
android:text="@string/ok" />
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user