import { db } from '../../db/database.js';
import { Clipboard } from '@capacitor/clipboard';
import { authService } from '../../services/auth-service.js';
import { AuthView } from '../auth/auth-view.js';
import { promptQuickSettingsTile } from '../../services/quick-settings-service.js';
export class SettingsView {
constructor(containerId) {
this.container = document.getElementById(containerId);
}
init() {
this.render();
this.attachEvents();
}
render() {
const currentModel = db.getSetting('model') || 'gemini-3.5-flash';
const currentApiKey = db.getSetting('gemini_api_key') || '';
const groqApiKey = db.getSetting('groq_api_key') || '';
const openrouterApiKey = db.getSetting('openrouter_api_key') || '';
const deepseekApiKey = db.getSetting('deepseek_api_key') || '';
const huggingfaceApiKey = db.getSetting('huggingface_api_key') || '';
const ollamaUrl = db.getSetting('ollama_url') || 'http://localhost:11434';
const startBehavior = db.getSetting('start_behavior') || 'new';
const bgStyle = db.getSetting('background_style') || 'standard';
this.container.innerHTML = `
Einstellungen
Passe die SchoolMind KI an deine Bedürfnisse an.
☁️ Cloud Account
Sichere deine Chats und API Keys mit End-zu-End Verschlüsselung und synchronisiere sie zwischen Geräten.
🧠 KI-Modell
🔑 API-Schlüssel & Verbindungen
🚀 Startverhalten
🎨 Hintergrund-Stil
✍️ Schreibstil-Profil
Dein persönlicher Stil (Note 2, 12. Klasse) ist aktiv und steuert jede Antwort der KI.
⚙️ System-Integration
Füge Schnelleingabe zu deinen Android Quick Settings hinzu (Android 13+).
`;
}
attachEvents() {
const saveBtn = document.getElementById('save-settings-btn');
// Attach paste button listeners
document.querySelectorAll('.paste-key-btn').forEach(btn => {
btn.addEventListener('click', async (e) => {
e.preventDefault();
const targetId = btn.getAttribute('data-target');
const input = document.getElementById(targetId);
if (!input) return;
// Force focus into the input field so the OS knows we are in typing mode
input.focus();
try {
// 1. Try native Capacitor clipboard (works reliably if inside Android/iOS App wrapper)
let text = '';
try {
const result = await Clipboard.read();
text = result.value;
} catch(err) {
// 2. Fallback to Web API (works in secure contexts)
if (navigator.clipboard && navigator.clipboard.readText) {
text = await navigator.clipboard.readText();
}
}
if (text) {
input.value = text.trim();
const originalHTML = btn.innerHTML;
btn.innerHTML = `