Commit 70650f20 authored by wudizhanche1000's avatar wudizhanche1000

Add: 启动时定位到最后访问

parent a2a1bac4
...@@ -55,8 +55,23 @@ export class AppsService { ...@@ -55,8 +55,23 @@ export class AppsService {
private downloadService: DownloadService, private ngZone: NgZone) { private downloadService: DownloadService, private ngZone: NgZone) {
} }
get lastVisted(): App|undefined {
let id = localStorage.getItem("last_visited");
if (id) {
return this.apps.get(id);
}
return undefined;
}
set lastVisted(app: App|undefined) {
if (app) {
localStorage.setItem("last_visited", app.id);
}
}
async loadApps() { async loadApps() {
let data = await this.http.get('./apps.json').map((response) => response.json()).toPromise(); let data = await
this.http.get('./apps.json').map((response) => response.json()).toPromise();
this.apps = this.loadAppsList(data); this.apps = this.loadAppsList(data);
return this.apps; return this.apps;
} }
...@@ -253,6 +268,15 @@ export class AppsService { ...@@ -253,6 +268,15 @@ export class AppsService {
this.findChildren(app).every((child) => (child.isInstalled() && child.isReady()) || !child.isInstalled()); this.findChildren(app).every((child) => (child.isInstalled() && child.isReady()) || !child.isInstalled());
} }
async importApp(app: App, appPath: string) {
if (!app.isInstalled()) {
app.status.status = "ready";
app.local = new AppLocal();
app.local.path = appPath;
await this.update(app, true);
}
}
sha256sum(file: string): Promise<string> { sha256sum(file: string): Promise<string> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let input = fs.createReadStream(file); let input = fs.createReadStream(file);
...@@ -308,7 +332,7 @@ export class AppsService { ...@@ -308,7 +332,7 @@ export class AppsService {
} else { } else {
readyToUpdate = app.isReady() && mods.every((mod) => mod.isReady()); readyToUpdate = app.isReady() && mods.every((mod) => mod.isReady());
} }
if (readyToUpdate && (app.local!.version !== app.version || verify)) { if (readyToUpdate && (verify || app.local!.version !== app.version )) {
app.status.status = "updating"; app.status.status = "updating";
try { try {
Logger.info("Checking updating: ", app); Logger.info("Checking updating: ", app);
......
...@@ -31,10 +31,10 @@ export class LobbyComponent implements OnInit { ...@@ -31,10 +31,10 @@ export class LobbyComponent implements OnInit {
async ngOnInit() { async ngOnInit() {
this.apps = await this.appsService.loadApps(); this.apps = await this.appsService.loadApps();
await this.appsService.migrate(); await this.appsService.migrate();
for(let app of this.apps.values()) { for (let app of this.apps.values()) {
this.appsService.update(app); this.appsService.update(app);
} }
this.chooseApp(Array.from(this.apps.values()).find(app => app.isInstalled()) || this.apps.get("ygopro")!); this.chooseApp(this.appsService.lastVisted || this.apps.get("ygopro")!);
// 初始化聊天室 // 初始化聊天室
let url = new URL('candy/index.html', location.href); let url = new URL('candy/index.html', location.href);
...@@ -42,7 +42,7 @@ export class LobbyComponent implements OnInit { ...@@ -42,7 +42,7 @@ export class LobbyComponent implements OnInit {
params.set('jid', this.loginService.user.username + '@mycard.moe'); params.set('jid', this.loginService.user.username + '@mycard.moe');
params.set('password', this.loginService.user.external_id.toString()); params.set('password', this.loginService.user.external_id.toString());
params.set('nickname', this.loginService.user.username); params.set('nickname', this.loginService.user.username);
switch(this.settingsService.getLocale()){ switch (this.settingsService.getLocale()) {
case 'zh-CN': case 'zh-CN':
params.set('language', 'cn'); params.set('language', 'cn');
break; break;
...@@ -57,6 +57,7 @@ export class LobbyComponent implements OnInit { ...@@ -57,6 +57,7 @@ export class LobbyComponent implements OnInit {
chooseApp(app: App) { chooseApp(app: App) {
this.currentApp = app; this.currentApp = app;
this.appsService.lastVisted = app;
if (this.candy && this.currentApp.conference) { if (this.candy && this.currentApp.conference) {
(<WebViewElement>this.candy.nativeElement).send('join', this.currentApp.conference + '@conference.mycard.moe'); (<WebViewElement>this.candy.nativeElement).send('join', this.currentApp.conference + '@conference.mycard.moe');
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment