incognito notification onClick

This commit is contained in:
rebelonion 2024-01-17 00:08:32 -06:00
parent 0464cc08c3
commit 05b3f57a76
5 changed files with 34 additions and 5 deletions

View file

@ -68,6 +68,8 @@
android:name="android.appwidget.provider" android:name="android.appwidget.provider"
android:resource="@xml/currently_airing_widget_info" /> android:resource="@xml/currently_airing_widget_info" />
</receiver> </receiver>
<receiver android:name=".subcriptions.NotificationClickReceiver" />
<activity <activity
android:name=".media.novel.novelreader.NovelReaderActivity" android:name=".media.novel.novelreader.NovelReaderActivity"

View file

@ -91,7 +91,6 @@ class App : MultiDexApplication() {
logger("Novel Extensions: ${novelExtensionManager.installedExtensionsFlow.first()}") logger("Novel Extensions: ${novelExtensionManager.installedExtensionsFlow.first()}")
NovelSources.init(novelExtensionManager.installedExtensionsFlow) NovelSources.init(novelExtensionManager.installedExtensionsFlow)
} }
} }

View file

@ -4,7 +4,9 @@ import android.animation.ObjectAnimator
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.app.DatePickerDialog import android.app.DatePickerDialog
import android.app.Notification
import android.app.NotificationManager import android.app.NotificationManager
import android.app.PendingIntent
import android.content.ClipData import android.content.ClipData
import android.content.ClipboardManager import android.content.ClipboardManager
import android.content.Context import android.content.Context
@ -46,6 +48,7 @@ import ani.dantotsu.databinding.ItemCountDownBinding
import ani.dantotsu.media.Media import ani.dantotsu.media.Media
import ani.dantotsu.parsers.ShowResponse import ani.dantotsu.parsers.ShowResponse
import ani.dantotsu.settings.UserInterfaceSettings import ani.dantotsu.settings.UserInterfaceSettings
import ani.dantotsu.subcriptions.NotificationClickReceiver
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.bumptech.glide.load.model.GlideUrl import com.bumptech.glide.load.model.GlideUrl
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade
@ -952,20 +955,26 @@ fun checkCountry(context: Context): Boolean {
else -> false else -> false
} }
} }
const val INCOGNITO_CHANNEL_ID = 26
@SuppressLint("LaunchActivityFromNotification")
fun incognitoNotification(context: Context){ fun incognitoNotification(context: Context){
val CHANNEL_ID = 26
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
val incognito = context.getSharedPreferences("Dantotsu", Context.MODE_PRIVATE).getBoolean("incognito", false) val incognito = context.getSharedPreferences("Dantotsu", Context.MODE_PRIVATE).getBoolean("incognito", false)
if (incognito) { if (incognito) {
val intent = Intent(context, NotificationClickReceiver::class.java)
val pendingIntent = PendingIntent.getBroadcast(context, 0, intent,
PendingIntent.FLAG_IMMUTABLE)
val builder = NotificationCompat.Builder(context, Notifications.CHANNEL_INCOGNITO_MODE) val builder = NotificationCompat.Builder(context, Notifications.CHANNEL_INCOGNITO_MODE)
.setSmallIcon(R.drawable.ic_incognito_24) .setSmallIcon(R.drawable.ic_incognito_24)
.setContentTitle("Incognito Mode") .setContentTitle("Incognito Mode")
.setContentText("Disable Incognito Mode") .setContentText("Disable Incognito Mode")
.setPriority(NotificationCompat.PRIORITY_HIGH) .setPriority(NotificationCompat.PRIORITY_HIGH)
.setContentIntent(pendingIntent)
.setOngoing(true) .setOngoing(true)
notificationManager.notify(CHANNEL_ID, builder.build()) notificationManager.notify(INCOGNITO_CHANNEL_ID, builder.build())
} else { } else {
notificationManager.cancel(CHANNEL_ID) notificationManager.cancel(INCOGNITO_CHANNEL_ID)
} }
} }

View file

@ -32,7 +32,6 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import java.text.DecimalFormat import java.text.DecimalFormat
import java.util.concurrent.CountDownLatch
class SelectorDialogFragment : BottomSheetDialogFragment() { class SelectorDialogFragment : BottomSheetDialogFragment() {

View file

@ -0,0 +1,20 @@
package ani.dantotsu.subcriptions
import android.app.NotificationManager
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import ani.dantotsu.INCOGNITO_CHANNEL_ID
class NotificationClickReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent?) {
context.getSharedPreferences("Dantotsu", Context.MODE_PRIVATE).edit()
.putBoolean("incognito", false)
.apply()
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.cancel(INCOGNITO_CHANNEL_ID)
}
}