pull/32/head
			
			
		
		
							parent
							
								
									bfeffb6014
								
							
						
					
					
						commit
						22a8c6a980
					
				@ -0,0 +1,22 @@ | 
				
			||||
package io.legado.app.help | 
				
			||||
 | 
				
			||||
import android.content.Context | 
				
			||||
import android.content.Intent | 
				
			||||
import io.legado.app.R | 
				
			||||
import io.legado.app.utils.toast | 
				
			||||
 | 
				
			||||
object IntentHelp { | 
				
			||||
 | 
				
			||||
 | 
				
			||||
    fun toTTSSetting(context: Context) { | 
				
			||||
        //跳转到文字转语音设置界面 | 
				
			||||
        try { | 
				
			||||
            val intent = Intent() | 
				
			||||
            intent.action = "com.android.settings.TTS_SETTINGS" | 
				
			||||
            intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK | 
				
			||||
            context.startActivity(intent) | 
				
			||||
        } catch (ignored: Exception) { | 
				
			||||
            context.toast(R.string.tip_cannot_jump_setting_page) | 
				
			||||
        } | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,72 @@ | 
				
			||||
package io.legado.app.service.notification | 
				
			||||
 | 
				
			||||
import android.app.Service | 
				
			||||
import android.graphics.BitmapFactory | 
				
			||||
import android.support.v4.media.session.MediaSessionCompat | 
				
			||||
import androidx.core.app.NotificationCompat | 
				
			||||
import io.legado.app.R | 
				
			||||
import io.legado.app.constant.AppConst | 
				
			||||
import io.legado.app.help.PendingIntentHelp | 
				
			||||
 | 
				
			||||
object ReadAloudNotification { | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
     * 更新通知 | 
				
			||||
     */ | 
				
			||||
    fun upNotification( | 
				
			||||
        context: Service, | 
				
			||||
        mediaSessionCompat: MediaSessionCompat?, | 
				
			||||
        pause: Boolean, | 
				
			||||
        title: String, | 
				
			||||
        subtitle: String, | 
				
			||||
        timeMinute: Int = 0 | 
				
			||||
    ) { | 
				
			||||
        var nTitle: String = when { | 
				
			||||
            pause -> context.getString(R.string.read_aloud_pause) | 
				
			||||
            timeMinute in 1..60 -> context.getString(R.string.read_aloud_timer, timeMinute) | 
				
			||||
            else -> context.getString(R.string.read_aloud_t) | 
				
			||||
        } | 
				
			||||
        nTitle += ": $title" | 
				
			||||
        var nSubtitle = subtitle | 
				
			||||
        if (subtitle.isEmpty()) | 
				
			||||
            nSubtitle = context.getString(R.string.read_aloud_s) | 
				
			||||
        val builder = NotificationCompat.Builder(context, AppConst.channelIdReadAloud) | 
				
			||||
            .setSmallIcon(R.drawable.ic_volume_up) | 
				
			||||
            .setLargeIcon(BitmapFactory.decodeResource(context.resources, R.drawable.icon_read_book)) | 
				
			||||
            .setOngoing(true) | 
				
			||||
            .setContentTitle(nTitle) | 
				
			||||
            .setContentText(nSubtitle) | 
				
			||||
            .setContentIntent(PendingIntentHelp.readBookActivityPendingIntent(context)) | 
				
			||||
        if (pause) { | 
				
			||||
            builder.addAction( | 
				
			||||
                R.drawable.ic_play_24dp, | 
				
			||||
                context.getString(R.string.resume), | 
				
			||||
                PendingIntentHelp.aloudServicePendingIntent(context, "resume") | 
				
			||||
            ) | 
				
			||||
        } else { | 
				
			||||
            builder.addAction( | 
				
			||||
                R.drawable.ic_pause_24dp, | 
				
			||||
                context.getString(R.string.pause), | 
				
			||||
                PendingIntentHelp.aloudServicePendingIntent(context, "pause") | 
				
			||||
            ) | 
				
			||||
        } | 
				
			||||
        builder.addAction( | 
				
			||||
            R.drawable.ic_stop_black_24dp, | 
				
			||||
            context.getString(R.string.stop), | 
				
			||||
            PendingIntentHelp.aloudServicePendingIntent(context, "stop") | 
				
			||||
        ) | 
				
			||||
        builder.addAction( | 
				
			||||
            R.drawable.ic_time_add_24dp, | 
				
			||||
            context.getString(R.string.set_timer), | 
				
			||||
            PendingIntentHelp.aloudServicePendingIntent(context, "setTimer") | 
				
			||||
        ) | 
				
			||||
        builder.setStyle( | 
				
			||||
            androidx.media.app.NotificationCompat.MediaStyle() | 
				
			||||
                .setMediaSession(mediaSessionCompat?.sessionToken) | 
				
			||||
                .setShowActionsInCompactView(0, 1, 2) | 
				
			||||
        ) | 
				
			||||
        builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC) | 
				
			||||
        val notification = builder.build() | 
				
			||||
        context.startForeground(112201, notification) | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
					Loading…
					
					
				
		Reference in new issue