incognito notification onClick
This commit is contained in:
parent
0464cc08c3
commit
05b3f57a76
5 changed files with 34 additions and 5 deletions
|
@ -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"
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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() {
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue