diff --git a/src/main.ts b/src/main.ts index 842fa6a..370aa7b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,9 +1,16 @@ // Modules to control application life and create native browser window -import { app, BrowserWindow, ipcMain, shell, desktopCapturer, session } from "electron"; +import { + app, + BrowserWindow, + ipcMain, + shell, + desktopCapturer, + session, +} from "electron"; import * as path from "path"; import "v8-compile-cache"; import * as storage from "electron-json-storage"; -import { saveSettings, getVersion, setup } from "./utils"; +import { saveSettings, getVersion, setup, getConfigUnsafe } from "./utils"; import "./extensions/mods"; import "./extensions/plugin"; import "./tray"; @@ -11,7 +18,6 @@ import "./shortcuts"; var contentPath: string = "null"; var frame: boolean; var channel: string; -var titlebar: boolean; export var mainWindow: BrowserWindow; var settings: any; @@ -30,22 +36,21 @@ storage.has("settings", function (error, hasKey) { storage.get("settings", function (error, data: any) { if (error) throw error; console.log(data); - titlebar = data.customTitlebar; channel = data.channel; settings = data; - if ((titlebar = true)) { - frame = false; - } else { - frame = true; - } + }); +var titlebar:any = getConfigUnsafe("customTitlebar") +console.log(!titlebar) function createWindow() { mainWindow = new BrowserWindow({ width: 300, height: 350, title: "ArmCord", - icon: "./assets/ac_icon_transparent.png", - frame: frame, + darkTheme: true, + icon: path.join(__dirname, "/assets/icon_transparent.png"), + frame: !titlebar, + autoHideMenuBar: true, webPreferences: { preload: path.join(__dirname, "preload/preload.js"), }, @@ -81,9 +86,8 @@ function createWindow() { mainWindow.setSize(800, 600); }); ipcMain.on("restart", (event, arg) => { - app.relaunch(); - app.exit(); - + app.relaunch(); + app.exit(); }); ipcMain.on("saveSettings", (event, ...args) => { @@ -122,32 +126,32 @@ function createWindow() { app.whenReady().then(() => { createWindow(); -session - .fromPartition("some-partition") - .setPermissionRequestHandler((webContents, permission, callback) => { - const url = webContents.getURL(); //unused? + session + .fromPartition("some-partition") + .setPermissionRequestHandler((webContents, permission, callback) => { + const url = webContents.getURL(); //unused? - if (permission === "notifications") { - // Approves the permissions request - callback(true); - } - if (permission === "media") { - // Approves the permissions request - callback(true); - } - if (url.startsWith("discord://")) { - // Denies the permissions request - return callback(false); - } - if (url.startsWith("discord.com/science")) { - // Denies the permissions request - return callback(false); - } - if (url.startsWith("discord.com/tracing")) { - // Denies the permissions request - return callback(false); - } - }); + if (permission === "notifications") { + // Approves the permissions request + callback(true); + } + if (permission === "media") { + // Approves the permissions request + callback(true); + } + if (url.startsWith("discord://")) { + // Denies the permissions request + return callback(false); + } + if (url.startsWith("discord.com/science")) { + // Denies the permissions request + return callback(false); + } + if (url.startsWith("discord.com/tracing")) { + // Denies the permissions request + return callback(false); + } + }); app.on("activate", function () { if (BrowserWindow.getAllWindows().length === 0) createWindow(); }); diff --git a/src/tray.ts b/src/tray.ts index e84ee85..8bd4057 100644 --- a/src/tray.ts +++ b/src/tray.ts @@ -1,8 +1,9 @@ import { app, Menu, Tray } from 'electron'; import {mainWindow} from './main'; +import * as path from 'path' let tray = null app.whenReady().then(() => { - tray = new Tray('./assets/ac_plug.png') + tray = new Tray(path.join(__dirname, "../", "/assets/ac_plug.png")) const contextMenu = Menu.buildFromTemplate([ { label: "Open ArmCord", @@ -25,6 +26,6 @@ app.whenReady().then(() => { }, ]); - tray.setToolTip('ArmCord' + process.env.npm_package_version) + tray.setToolTip('ArmCord ' + process.env.npm_package_version) tray.setContextMenu(contextMenu) }) \ No newline at end of file diff --git a/src/utils.ts b/src/utils.ts index f59a220..9a9972f 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,5 +1,7 @@ -import * as fs from "fs"; import * as storage from "electron-json-storage"; +import * as fs from "fs"; +import { app } from "electron"; + //utillity functions that are used all over the codebase or just too obscure to be put in the file used in export function addStyle(styleString: string) { const style = document.createElement("style"); @@ -21,6 +23,7 @@ export function setup() { channel: "stable", firstRun: "done", armcordCSP: true, + mods: "none" }, function (error) { if (error) throw error; @@ -51,8 +54,16 @@ export function saveSettings( } ); } - -export function getVersion() { - const pkgjson = fs.readFileSync("./package.json", "utf8"); - return JSON.parse(pkgjson).version; +export async function getConfigUnsafe(object: string) { + const userDataPath = app.getPath("userData"); + const storagePath = userDataPath + "/storage/"; + let rawdata = fs.readFileSync(storagePath + "settings.json", "utf-8"); + let returndata = JSON.parse(rawdata); + console.log(returndata[object]); + return returndata[object] } +export function getVersion() { + //to-do better way of doing this + return '3.0.1'; +} + \ No newline at end of file