mirror of
https://gitcode.com/gh_mirrors/re/react-native-pushy.git
synced 2025-12-17 18:22:38 +08:00
Record local hash info
This commit is contained in:
@@ -15,7 +15,6 @@ import org.json.JSONException;
|
|||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
import org.json.JSONTokener;
|
import org.json.JSONTokener;
|
||||||
|
|
||||||
import java.io.BufferedInputStream;
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
@@ -32,9 +31,8 @@ import okio.BufferedSink;
|
|||||||
import okio.BufferedSource;
|
import okio.BufferedSource;
|
||||||
import okio.Okio;
|
import okio.Okio;
|
||||||
import static cn.reactnative.modules.update.UpdateModule.sendEvent;
|
import static cn.reactnative.modules.update.UpdateModule.sendEvent;
|
||||||
/**
|
|
||||||
* Created by tdzl2003 on 3/31/16.
|
|
||||||
*/
|
|
||||||
class DownloadTask extends AsyncTask<DownloadTaskParams, long[], Void> {
|
class DownloadTask extends AsyncTask<DownloadTaskParams, long[], Void> {
|
||||||
final int DOWNLOAD_CHUNK_SIZE = 4096;
|
final int DOWNLOAD_CHUNK_SIZE = 4096;
|
||||||
|
|
||||||
|
|||||||
@@ -17,9 +17,6 @@ import java.util.concurrent.Executors;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by tdzl2003 on 3/31/16.
|
|
||||||
*/
|
|
||||||
public class UpdateContext {
|
public class UpdateContext {
|
||||||
private Context context;
|
private Context context;
|
||||||
private File rootDir;
|
private File rootDir;
|
||||||
@@ -72,10 +69,6 @@ public class UpdateContext {
|
|||||||
return context.getString(R.string.pushy_build_time);
|
return context.getString(R.string.pushy_build_time);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getUuid() {
|
|
||||||
return sp.getString("uuid", null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map getBlockUpdate() {
|
public Map getBlockUpdate() {
|
||||||
return new HashMap<String, Object>() {{
|
return new HashMap<String, Object>() {{
|
||||||
put("until", sp.getInt("blockUntil", 0));
|
put("until", sp.getInt("blockUntil", 0));
|
||||||
@@ -163,12 +156,16 @@ public class UpdateContext {
|
|||||||
editor.apply();
|
editor.apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUuid(String uuid) {
|
public void setKv(String key, String value) {
|
||||||
SharedPreferences.Editor editor = sp.edit();
|
SharedPreferences.Editor editor = sp.edit();
|
||||||
editor.putString("uuid", uuid);
|
editor.putString(key, value);
|
||||||
editor.apply();
|
editor.apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getKv(String key) {
|
||||||
|
return sp.getString(key, null);
|
||||||
|
}
|
||||||
|
|
||||||
public void setBlockUpdate(int until, String reason) {
|
public void setBlockUpdate(int until, String reason) {
|
||||||
SharedPreferences.Editor editor = sp.edit();
|
SharedPreferences.Editor editor = sp.edit();
|
||||||
editor.putInt("blockUntil", until);
|
editor.putInt("blockUntil", until);
|
||||||
@@ -191,7 +188,11 @@ public class UpdateContext {
|
|||||||
public void markSuccess() {
|
public void markSuccess() {
|
||||||
SharedPreferences.Editor editor = sp.edit();
|
SharedPreferences.Editor editor = sp.edit();
|
||||||
editor.putBoolean("firstTimeOk", true);
|
editor.putBoolean("firstTimeOk", true);
|
||||||
|
String lastVersion = sp.getString("lastVersion", null);
|
||||||
|
if (lastVersion != null) {
|
||||||
editor.remove("lastVersion");
|
editor.remove("lastVersion");
|
||||||
|
editor.remove("hash_" + lastVersion);
|
||||||
|
}
|
||||||
editor.apply();
|
editor.apply();
|
||||||
|
|
||||||
this.cleanUp();
|
this.cleanUp();
|
||||||
|
|||||||
@@ -22,15 +22,11 @@ import com.facebook.react.modules.core.DeviceEventManagerModule;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Method;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static android.support.v4.content.FileProvider.getUriForFile;
|
import static android.support.v4.content.FileProvider.getUriForFile;
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by tdzl2003 on 3/31/16.
|
|
||||||
*/
|
|
||||||
public class UpdateModule extends ReactContextBaseJavaModule {
|
public class UpdateModule extends ReactContextBaseJavaModule {
|
||||||
UpdateContext updateContext;
|
UpdateContext updateContext;
|
||||||
public static ReactApplicationContext mContext;
|
public static ReactApplicationContext mContext;
|
||||||
@@ -64,7 +60,7 @@ public class UpdateModule extends ReactContextBaseJavaModule {
|
|||||||
updateContext.clearRollbackMark();
|
updateContext.clearRollbackMark();
|
||||||
}
|
}
|
||||||
constants.put("blockUpdate", updateContext.getBlockUpdate());
|
constants.put("blockUpdate", updateContext.getBlockUpdate());
|
||||||
constants.put("uuid", updateContext.getUuid());
|
constants.put("uuid", updateContext.getKv("uuid"));
|
||||||
return constants;
|
return constants;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -264,11 +260,27 @@ public class UpdateModule extends ReactContextBaseJavaModule {
|
|||||||
UiThreadUtil.runOnUiThread(new Runnable() {
|
UiThreadUtil.runOnUiThread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
updateContext.setUuid(uuid);
|
updateContext.setKv("uuid", uuid);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void setLocalHashInfo(final String hash, final String info) {
|
||||||
|
UiThreadUtil.runOnUiThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
updateContext.setKv("hash_" + hash, info);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void getLocalHashInfo(final String hash, final Promise promise) {
|
||||||
|
promise.resolve(updateContext.getKv("hash_" + hash));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* 发送事件*/
|
/* 发送事件*/
|
||||||
public static void sendEvent(String eventName, WritableMap params) {
|
public static void sendEvent(String eventName, WritableMap params) {
|
||||||
((ReactContext) mContext).getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit(eventName,
|
((ReactContext) mContext).getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit(eventName,
|
||||||
|
|||||||
6
lib/index.d.ts
vendored
6
lib/index.d.ts
vendored
@@ -72,6 +72,12 @@ export function setCustomEndpoints({
|
|||||||
backupQueryUrl?: string;
|
backupQueryUrl?: string;
|
||||||
}): void;
|
}): void;
|
||||||
|
|
||||||
|
export function getCurrentVersionInfo(): Promise<{
|
||||||
|
name?: string;
|
||||||
|
description?: string;
|
||||||
|
metaInfo?: string;
|
||||||
|
}>;
|
||||||
|
|
||||||
interface ProgressData {
|
interface ProgressData {
|
||||||
hash: string;
|
hash: string;
|
||||||
received: number;
|
received: number;
|
||||||
|
|||||||
22
lib/index.js
22
lib/index.js
@@ -21,11 +21,6 @@ if (!Pushy) {
|
|||||||
throw new Error('react-native-update模块无法加载,请对照安装文档检查配置。');
|
throw new Error('react-native-update模块无法加载,请对照安装文档检查配置。');
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: save and export current version info
|
|
||||||
// name
|
|
||||||
// description
|
|
||||||
// metaInfo
|
|
||||||
|
|
||||||
export const downloadRootDir = Pushy.downloadRootDir;
|
export const downloadRootDir = Pushy.downloadRootDir;
|
||||||
export const packageVersion = Pushy.packageVersion;
|
export const packageVersion = Pushy.packageVersion;
|
||||||
export const currentVersion = Pushy.currentVersion;
|
export const currentVersion = Pushy.currentVersion;
|
||||||
@@ -41,6 +36,18 @@ if (Platform.OS === 'android' && !Pushy.isUsingBundleUrl) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setLocalHashInfo(hash, info) {
|
||||||
|
Pushy.setLocalHashInfo(hash, JSON.stringify(info));
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getLocalHashInfo(hash) {
|
||||||
|
return JSON.parse(await Pushy.getLocalHashInfo(hash));
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getCurrentVersionInfo() {
|
||||||
|
return currentVersion ? getLocalHashInfo(currentVersion) : {};
|
||||||
|
}
|
||||||
|
|
||||||
const eventEmitter = new NativeEventEmitter(Pushy);
|
const eventEmitter = new NativeEventEmitter(Pushy);
|
||||||
|
|
||||||
if (!uuid) {
|
if (!uuid) {
|
||||||
@@ -219,6 +226,11 @@ export async function downloadUpdate(options, eventListeners) {
|
|||||||
hash: options.hash,
|
hash: options.hash,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
setLocalHashInfo(options.hash, {
|
||||||
|
name: options.name,
|
||||||
|
description: options.description,
|
||||||
|
metaInfo: options.metaInfo,
|
||||||
|
});
|
||||||
progressHandler && progressHandler.remove();
|
progressHandler && progressHandler.remove();
|
||||||
downloadedHash = options.hash;
|
downloadedHash = options.hash;
|
||||||
return options.hash;
|
return options.hash;
|
||||||
|
|||||||
Reference in New Issue
Block a user