Skip to content

Commit 366b2a6

Browse files
committed
fix harmony copies
1 parent 34e053a commit 366b2a6

File tree

2 files changed

+11
-74
lines changed

2 files changed

+11
-74
lines changed

harmony/pushy/src/main/ets/DownloadTask.ts

Lines changed: 10 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import http from '@ohos.net.http';
22
import fileIo from '@ohos.file.fs';
33
import common from '@ohos.app.ability.common';
4-
import { buffer } from '@kit.ArkTS';
5-
import { zlib, BusinessError } from '@kit.BasicServicesKit';
4+
import { zlib } from '@kit.BasicServicesKit';
65
import { EventHub } from './EventHub';
76
import { DownloadTaskParams } from './DownloadTaskParams';
87
import Pushy from 'librnupdate.so';
@@ -128,53 +127,6 @@ export class DownloadTask {
128127
});
129128
}
130129

131-
private async copyFile(from: string, to: string): Promise<void> {
132-
let reader;
133-
let writer;
134-
try {
135-
reader = fileIo.openSync(from, fileIo.OpenMode.READ_ONLY);
136-
writer = fileIo.openSync(
137-
to,
138-
fileIo.OpenMode.CREATE | fileIo.OpenMode.WRITE_ONLY,
139-
);
140-
const arrayBuffer = new ArrayBuffer(4096);
141-
let bytesRead: number;
142-
do {
143-
bytesRead = await fileIo
144-
.read(reader.fd, arrayBuffer)
145-
.catch((err: BusinessError) => {
146-
throw Error(
147-
`Error reading file: ${err.message}, code: ${err.code}`,
148-
);
149-
});
150-
if (bytesRead > 0) {
151-
const buf = buffer.from(arrayBuffer, 0, bytesRead);
152-
await fileIo
153-
.write(writer.fd, buf.buffer, {
154-
offset: 0,
155-
length: bytesRead,
156-
})
157-
.catch((err: BusinessError) => {
158-
throw Error(
159-
`Error writing file: ${err.message}, code: ${err.code}`,
160-
);
161-
});
162-
}
163-
} while (bytesRead > 0);
164-
console.info('File copied successfully');
165-
} catch (error) {
166-
console.error('Copy file failed:', error);
167-
throw error;
168-
} finally {
169-
if (reader !== undefined) {
170-
fileIo.closeSync(reader);
171-
}
172-
if (writer !== undefined) {
173-
fileIo.closeSync(writer);
174-
}
175-
}
176-
}
177-
178130
private async doFullPatch(params: DownloadTaskParams): Promise<void> {
179131
await this.downloadFile(params);
180132
await this.removeDirectory(params.unzipDirectory);
@@ -243,7 +195,7 @@ export class DownloadTask {
243195

244196
const copies = obj.copies;
245197
for (const to in copies) {
246-
let from = copies[to];
198+
let from = copies[to].replace('resources/rawfile/', '');
247199
if (from === '') {
248200
from = to;
249201
}
@@ -397,29 +349,14 @@ export class DownloadTask {
397349
copyList: Map<string, Array<string>>,
398350
): Promise<void> {
399351
try {
400-
const bundlePath = this.context.bundleCodeDir;
401-
402-
const files = await fileIo.listFile(bundlePath);
403-
for (const file of files) {
404-
if (file === '.' || file === '..') {
405-
continue;
406-
}
407-
408-
const targets = copyList.get(file);
409-
if (targets) {
410-
let lastTarget: string | undefined;
411-
412-
for (const target of targets) {
413-
console.info(`Copying from resource ${file} to ${target}`);
414-
415-
if (lastTarget) {
416-
await this.copyFile(lastTarget, target);
417-
} else {
418-
const sourcePath = `${bundlePath}/${file}`;
419-
await this.copyFile(sourcePath, target);
420-
lastTarget = target;
421-
}
422-
}
352+
const resourceManager = this.context.resourceManager;
353+
354+
for (const [from, targets] of copyList.entries()) {
355+
const fromContent = await resourceManager.getRawFileContent(from);
356+
for (const target of targets) {
357+
const fileStream = fileIo.createStreamSync(target, 'w+');
358+
fileStream.writeSync(fromContent.buffer);
359+
fileStream.close();
423360
}
424361
}
425362
} catch (error) {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-native-update",
3-
"version": "10.35.3",
3+
"version": "10.35.4",
44
"description": "react-native hot update",
55
"main": "src/index",
66
"scripts": {

0 commit comments

Comments
 (0)