//
//  MessagesViewController.swift
//  StickerSlackiMessageExtension
//
//  Created by neon443 on 18/10/2025.
//

import UIKit
import Messages

class MessagesViewController: MSMessagesAppViewController {
	let dataSource: StickerBrowserDataSource = StickerBrowserDataSource()
	
	override func viewDidLoad() {
		super.viewDidLoad()
		// Do any additional setup after loading the view.
		//		sleep(5)
	}
	
	// MARK: - Conversation Handling
	
	override func willBecomeActive(with conversation: MSConversation) {
		let stickerBrowser = MSStickerBrowserView(frame: .zero, stickerSize: .small)
		stickerBrowser.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height)
		stickerBrowser.dataSource = dataSource
		stickerBrowser.autoresizingMask = [.flexibleWidth]
		view.addSubview(stickerBrowser)
		stickerBrowser.reloadData()
		view.bringSubviewToFront(stickerBrowser)
		
		// Called when the extension is about to move from the inactive to active state.
		// This will happen when the extension is about to present UI.
		
		// Use this method to configure the extension and restore previously stored state.
	}
	
	override func didResignActive(with conversation: MSConversation) {
		// Called when the extension is about to move from the active to inactive state.
		// This will happen when the user dismisses the extension, changes to a different
		// conversation or quits Messages.
		
		// Use this method to release shared resources, save user data, invalidate timers,
		// and store enough state information to restore your extension to its current state
		// in case it is terminated later.
	}
	
	override func didReceive(_ message: MSMessage, conversation: MSConversation) {
		// Called when a message arrives that was generated by another instance of this
		// extension on a remote device.
		
		// Use this method to trigger UI updates in response to the message.
	}
	
	override func didStartSending(_ message: MSMessage, conversation: MSConversation) {
		// Called when the user taps the send button.
	}
	
	override func didCancelSending(_ message: MSMessage, conversation: MSConversation) {
		// Called when the user deletes the message without sending it.
		
		// Use this to clean up state related to the deleted message.
	}
	
	override func willTransition(to presentationStyle: MSMessagesAppPresentationStyle) {
		// Called before the extension transitions to a new presentation style.
		
		// Use this method to prepare for the change in presentation style.
	}
	
	override func didTransition(to presentationStyle: MSMessagesAppPresentationStyle) {
		// Called after the extension transitions to a new presentation style.
		
		// Use this method to finalize any behaviors associated with the change in presentation style.
	}
	
}
