This commit is contained in:
tateisu 2019-10-24 05:13:51 +09:00
parent 3c5283e32a
commit 4ee646687a
2 changed files with 42 additions and 22 deletions

View File

@ -15,7 +15,6 @@ import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.provider.MediaStore
import android.provider.Settings
import android.text.Editable
import android.text.SpannableString
import android.text.TextWatcher
@ -363,12 +362,12 @@ class ActAccountSetting
btnNotificationSoundReset = findViewById(R.id.btnNotificationSoundReset)
btnNotificationSoundEdit.setOnClickListener(this)
btnNotificationSoundReset.setOnClickListener(this)
btnNotificationStyleEdit = findViewById(R.id.btnNotificationStyleEdit)
btnNotificationStyleEditReply = findViewById(R.id.btnNotificationStyleEditReply)
btnNotificationStyleEdit.setOnClickListener(this)
btnNotificationStyleEditReply.setOnClickListener(this)
vg(btnNotificationStyleEditReply,Pref.bpSeparateReplyNotificationGroup(pref) )
vg(btnNotificationStyleEditReply, Pref.bpSeparateReplyNotificationGroup(pref))
name_invalidator = NetworkEmojiInvalidator(handler, etDisplayName)
note_invalidator = NetworkEmojiInvalidator(handler, etNote)
@ -607,20 +606,19 @@ class ActAccountSetting
R.id.btnFields -> sendFields()
R.id.btnNotificationStyleEdit -> if(Build.VERSION.SDK_INT >= 26) {
val channel = NotificationHelper.createNotificationChannel(this, account,NotificationHelper.TRACKING_NAME_DEFAULT)
val intent = Intent("android.settings.CHANNEL_NOTIFICATION_SETTINGS")
intent.putExtra(Settings.EXTRA_CHANNEL_ID, channel.id)
intent.putExtra(Settings.EXTRA_APP_PACKAGE, packageName)
startActivity(intent)
}
R.id.btnNotificationStyleEditReply -> if(Build.VERSION.SDK_INT >= 26) {
val channel = NotificationHelper.createNotificationChannel(this, account,NotificationHelper.TRACKING_NAME_REPLY)
val intent = Intent("android.settings.CHANNEL_NOTIFICATION_SETTINGS")
intent.putExtra(Settings.EXTRA_CHANNEL_ID, channel.id)
intent.putExtra(Settings.EXTRA_APP_PACKAGE, packageName)
startActivity(intent)
}
R.id.btnNotificationStyleEdit ->
NotificationHelper.openNotificationChannelSetting(
this,
account,
NotificationHelper.TRACKING_NAME_DEFAULT
)
R.id.btnNotificationStyleEditReply ->
NotificationHelper.openNotificationChannelSetting(
this,
account,
NotificationHelper.TRACKING_NAME_REPLY
)
}
}

View File

@ -4,6 +4,9 @@ import android.annotation.TargetApi
import android.app.NotificationChannel
import android.app.NotificationManager
import android.content.Context
import android.content.Intent
import android.os.Build
import android.provider.Settings
import jp.juggler.subwaytooter.R
import jp.juggler.subwaytooter.table.SavedAccount
@ -17,7 +20,11 @@ object NotificationHelper {
internal const val TRACKING_NAME_REPLY = "reply"
@TargetApi(26)
fun createNotificationChannel(context : Context, account : SavedAccount,trackingName:String) =when(trackingName) {
fun createNotificationChannel(
context : Context,
account : SavedAccount,
trackingName : String
) = when(trackingName) {
"" -> createNotificationChannel(
context,
account.acct, // id
@ -26,7 +33,7 @@ object NotificationHelper {
NotificationManager.IMPORTANCE_DEFAULT // : NotificationManager.IMPORTANCE_LOW;
)
else-> createNotificationChannel(
else -> createNotificationChannel(
context,
"${account.acct}/$trackingName", // id
"${account.acct}/$trackingName", // name
@ -42,9 +49,10 @@ object NotificationHelper {
, description : String? // The user-visible description of the channel.
, importance : Int
) : NotificationChannel {
val notification_manager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager?
?: throw NotImplementedError("missing NotificationManager system service")
val notification_manager =
context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager?
?: throw NotImplementedError("missing NotificationManager system service")
var channel : NotificationChannel? = null
try {
channel = notification_manager.getNotificationChannel(channel_id)
@ -62,4 +70,18 @@ object NotificationHelper {
return channel
}
fun openNotificationChannelSetting(
context : Context,
account : SavedAccount,
trackingName : String
) {
if(Build.VERSION.SDK_INT >= 26) {
val channel = createNotificationChannel(context, account, trackingName)
val intent = Intent("android.settings.CHANNEL_NOTIFICATION_SETTINGS")
intent.putExtra(Settings.EXTRA_CHANNEL_ID, channel.id)
intent.putExtra(Settings.EXTRA_APP_PACKAGE, context.packageName)
context.startActivity(intent)
}
}
}