android :: Notification :: defaultinit
# An Android notification, shown at the top of the screen
class Notification
	# Title of this notification
	var title: nullable Text is writable
	# Text content of this notification
	var text: nullable Text is writable
	# Text to show in the bar as the notification appears
	var ticker: nullable Text = null is writable
	# Name of a resource found in the `res/drawable-*` folders to use for the small icon
	#
	# By default, we use the app's icon, named "icon". A valid icon must be used
	# to display notifications.
	var small_icon: nullable Text = null is writable
	# Number to display on the bottom right part of the notification
	var number: nullable Int = null is writable
	# Is this notification ongoing? Not user dismissable.
	var ongoing: Bool = false is writable
	private var id: nullable Int = null
	private var tag = "app.nit notification"
	# Show the notification
	fun show
	do
		sys.jni_env.push_local_frame(8)
		var context = app.native_activity
		var builder = new NativeNotificationBuilder(context)
		# If no custom icon is specified, use app's
		var small_icon = self.small_icon
		if small_icon == null then small_icon = "icon"
		var small_icon_id = app.resource_manager.other_id(small_icon.to_s, "drawable")
		builder.small_icon = small_icon_id
		# Other options
		if title != null then builder.title = title.to_java_string
		if text != null then builder.text = text.to_java_string
		if ticker != null then builder.ticker = ticker.to_java_string
		builder.ongoing = ongoing
		var notif = builder.create
		var manager = context.notification_manager
		var id = self.id
		if id == null then id = sys.next_notification_id
		manager.notify(tag.to_java_string, id, notif)
		self.id = id
		sys.jni_env.pop_local_frame
	end
	# Was this notification shown with `show`?
	#
	# This does not indicates whether is has been dismissed or not. Only that
	# it was shown at least once.
	private fun was_shown: Bool do return id != null
	# Cancel this notification and hide it if it is currently displayed
	fun cancel
	do
		var id = self.id
		if id != null then
			sys.jni_env.push_local_frame(8)
			var manager = app.native_context.notification_manager
			manager.cancel(tag.to_java_string, id)
			self.id = null
			sys.jni_env.pop_local_frame
		end
	end
end
					lib/android/notification/notification.nit:41,1--120,3