From 4ee646687a4e06e70d2ebec2c427e6d9d0785c76 Mon Sep 17 00:00:00 2001 From: tateisu Date: Thu, 24 Oct 2019 05:13:51 +0900 Subject: [PATCH] refactor --- .../juggler/subwaytooter/ActAccountSetting.kt | 32 +++++++++---------- .../subwaytooter/util/NotificationHelper.kt | 32 ++++++++++++++++--- 2 files changed, 42 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActAccountSetting.kt b/app/src/main/java/jp/juggler/subwaytooter/ActAccountSetting.kt index 60e79356..04ee0e86 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/ActAccountSetting.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/ActAccountSetting.kt @@ -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 + ) } } diff --git a/app/src/main/java/jp/juggler/subwaytooter/util/NotificationHelper.kt b/app/src/main/java/jp/juggler/subwaytooter/util/NotificationHelper.kt index 12cdcbc8..f6933981 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/util/NotificationHelper.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/util/NotificationHelper.kt @@ -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) + } + } }