You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
2.9 KiB
117 lines
2.9 KiB
const { app, BrowserWindow, ipcMain } = require('electron');
|
|
const path = require('path');
|
|
|
|
// Mock plugin for Electron development
|
|
const DailyNotification = {
|
|
async configure(options) {
|
|
console.log('Electron Configure called:', options);
|
|
return Promise.resolve();
|
|
},
|
|
async scheduleDailyNotification(options) {
|
|
console.log('Electron Schedule called:', options);
|
|
return Promise.resolve();
|
|
},
|
|
async getDebugInfo() {
|
|
return Promise.resolve({
|
|
status: 'Electron Mock Mode',
|
|
configuration: {
|
|
storage: 'mock',
|
|
platform: 'electron',
|
|
version: '1.0.0'
|
|
},
|
|
recentErrors: [],
|
|
performance: {
|
|
overallScore: 95,
|
|
memoryUsage: 15.2,
|
|
cpuUsage: 1.2
|
|
}
|
|
});
|
|
},
|
|
async getPerformanceMetrics() {
|
|
return Promise.resolve({
|
|
overallScore: 95,
|
|
databasePerformance: 100,
|
|
memoryEfficiency: 95,
|
|
batteryEfficiency: 100,
|
|
objectPoolEfficiency: 100,
|
|
totalDatabaseQueries: 0,
|
|
averageMemoryUsage: 15.2,
|
|
objectPoolHits: 0,
|
|
backgroundCpuUsage: 0.5,
|
|
totalNetworkRequests: 0,
|
|
recommendations: ['Electron mock mode - no optimizations needed']
|
|
});
|
|
}
|
|
};
|
|
|
|
// IPC handlers for Electron
|
|
ipcMain.handle('configure-plugin', async (event, options) => {
|
|
try {
|
|
await DailyNotification.configure(options);
|
|
return { success: true, message: 'Configuration successful' };
|
|
} catch (error) {
|
|
return { success: false, error: error.message };
|
|
}
|
|
});
|
|
|
|
ipcMain.handle('schedule-notification', async (event, options) => {
|
|
try {
|
|
await DailyNotification.scheduleDailyNotification(options);
|
|
return { success: true, message: 'Notification scheduled' };
|
|
} catch (error) {
|
|
return { success: false, error: error.message };
|
|
}
|
|
});
|
|
|
|
ipcMain.handle('get-debug-info', async () => {
|
|
try {
|
|
const info = await DailyNotification.getDebugInfo();
|
|
return { success: true, data: info };
|
|
} catch (error) {
|
|
return { success: false, error: error.message };
|
|
}
|
|
});
|
|
|
|
ipcMain.handle('get-performance-metrics', async () => {
|
|
try {
|
|
const metrics = await DailyNotification.getPerformanceMetrics();
|
|
return { success: true, data: metrics };
|
|
} catch (error) {
|
|
return { success: false, error: error.message };
|
|
}
|
|
});
|
|
|
|
function createWindow() {
|
|
const mainWindow = new BrowserWindow({
|
|
width: 800,
|
|
height: 600,
|
|
webPreferences: {
|
|
nodeIntegration: false,
|
|
contextIsolation: true,
|
|
preload: path.join(__dirname, 'preload.js')
|
|
},
|
|
title: 'Daily Notification - Electron Test'
|
|
});
|
|
|
|
// Load the web app
|
|
mainWindow.loadFile('dist/index.html');
|
|
|
|
// Open DevTools in development
|
|
if (process.argv.includes('--dev')) {
|
|
mainWindow.webContents.openDevTools();
|
|
}
|
|
}
|
|
|
|
app.whenReady().then(createWindow);
|
|
|
|
app.on('window-all-closed', () => {
|
|
if (process.platform !== 'darwin') {
|
|
app.quit();
|
|
}
|
|
});
|
|
|
|
app.on('activate', () => {
|
|
if (BrowserWindow.getAllWindows().length === 0) {
|
|
createWindow();
|
|
}
|
|
});
|
|
|