Skip to content

Commit

Permalink
fix bug for start page
Browse files Browse the repository at this point in the history
  • Loading branch information
shenzhenjinma committed Jun 28, 2016
1 parent f7f9f3c commit 1e895ce
Show file tree
Hide file tree
Showing 9 changed files with 256 additions and 68 deletions.
24 changes: 24 additions & 0 deletions package.json
@@ -0,0 +1,24 @@
{
"name": "react-native-hot-update",
"version": "1.8.0",
"description": "react-native-hot-update react-native-difference-update",
"main": "README.md",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/shenzhenjinma/react-native-horse-push.git"
},
"keywords": [
"react-native-hot-update",
"react-native-difference-update",
"shenzhenjinma"
],
"author": "root@68xg.com",
"license": "ISC",
"bugs": {
"url": "https://github.com/shenzhenjinma/react-native-horse-push/issues"
},
"homepage": "https://github.com/shenzhenjinma/react-native-horse-push#readme"
}
33 changes: 28 additions & 5 deletions react-native-horse-push.iml
Expand Up @@ -12,10 +12,7 @@
<option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugAndroidTest" />
<option name="COMPILE_JAVA_TEST_TASK_NAME" value="compileDebugAndroidTestSources" />
<afterSyncTasks>
<task>generateDebugAndroidTestSources</task>
<task>generateDebugSources</task>
</afterSyncTasks>
<option name="ALLOW_USER_CONFIGURATION" value="false" />
Expand All @@ -29,7 +26,7 @@
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
<output-test url="file://$MODULE_DIR$/build/intermediates/classes/androidTest/debug" />
<output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
Expand All @@ -51,31 +48,55 @@
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotations" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.facebook.react/react-native/0.18.0/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
</content>
Expand All @@ -86,8 +107,8 @@
<orderEntry type="library" exported="" name="okio-1.6.0" level="project" />
<orderEntry type="library" exported="" name="stetho-okhttp-1.2.0" level="project" />
<orderEntry type="library" exported="" name="okhttp-2.5.0" level="project" />
<orderEntry type="library" exported="" name="jsr305-3.0.0" level="project" />
<orderEntry type="library" exported="" name="stetho-1.2.0" level="project" />
<orderEntry type="library" exported="" name="jsr305-3.0.0" level="project" />
<orderEntry type="library" exported="" name="jackson-core-2.2.3" level="project" />
<orderEntry type="library" exported="" name="fbcore-0.8.1" level="project" />
<orderEntry type="library" exported="" name="commons-cli-1.2" level="project" />
Expand All @@ -98,6 +119,8 @@
<orderEntry type="library" exported="" name="android-jsc-r174650" level="project" />
<orderEntry type="library" exported="" name="fresco-0.8.1" level="project" />
<orderEntry type="library" exported="" name="imagepipeline-okhttp-0.8.1" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="hamcrest-core-1.3" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="junit-4.12" level="project" />
<orderEntry type="library" exported="" name="bolts-android-1.1.4" level="project" />
<orderEntry type="library" exported="" name="support-v4-23.0.1" level="project" />
<orderEntry type="library" exported="" name="drawee-0.8.1" level="project" />
Expand Down
Expand Up @@ -7,7 +7,11 @@
* <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
*/
public class ApplicationTest extends ApplicationTestCase<Application> {

public ApplicationTest() {
super(Application.class);

}


}
8 changes: 8 additions & 0 deletions src/androidTest/java/com/reactnative/horsepush/Test.java
@@ -0,0 +1,8 @@
package com.reactnative.horsepush;

/**
* Created by techbin on 2016/6/17 0017.
*/
public class Test {

}
46 changes: 20 additions & 26 deletions src/main/java/com/reactnative/horsepush/HorsePush.java
Expand Up @@ -11,7 +11,6 @@
import android.os.Build;
import android.os.Environment;
import android.os.Handler;
import android.util.Log;

import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
Expand Down Expand Up @@ -110,8 +109,8 @@ public HorsePush(Context context, String updateServer, String channel) {

//检查js
private void checkJS() {
String jsRecord = HorsePushModule.getSharedPreferences(mContext, "js_name");//设置js默认值
String jsRecordMd5 = HorsePushModule.getSharedPreferences(mContext, "js_name_md5");//读取md5
String jsRecord = HorsePushUtils.getSharedPreferences(mContext, "js_name");//设置js默认值
String jsRecordMd5 = HorsePushUtils.getSharedPreferences(mContext, "js_name_md5");//读取md5

String jsDelFileName = jsRecord.equals(HORSE_PUSH_JS1_FILE_NAME) ? HORSE_PUSH_JS2_FILE_NAME : HORSE_PUSH_JS1_FILE_NAME;
HORSE_PUSH_JS_FILE_NAME = jsRecord.equals(HORSE_PUSH_JS1_FILE_NAME) ? HORSE_PUSH_JS1_FILE_NAME : HORSE_PUSH_JS2_FILE_NAME;
Expand All @@ -126,12 +125,11 @@ private void checkJS() {
f.delete();
copyAssetFileToFiles(HORSE_PUSH_ASSET_JS_NAME, HORSE_PUSH_WORK_PATH + HORSE_PUSH_JS_FILE_NAME + ".t");
File t = new File(HORSE_PUSH_WORK_PATH + HORSE_PUSH_JS_FILE_NAME + ".t");
HorsePushModule.setSharedPreferences(mContext, "js_name_md5", HorsePushMd5.getFileMD5String(t));
HorsePushUtils.setSharedPreferences(mContext, "js_name_md5", HorsePushMd5.getFileMD5String(t));
t.renameTo(f);//安全复制
}
} catch (Exception e) {
}
checkUpdate();//更新
}

//是否可以更新
Expand All @@ -152,7 +150,6 @@ private static boolean isCanUpdate() {
}

public static void reCheckUpdate() {

if (!isCanUpdate()) {
return;
}
Expand All @@ -163,11 +160,11 @@ public static void reCheckUpdate() {

//检查启动图片
private void checkStartPageImg() {
String startpageimg = HorsePushModule.getSharedPreferences(mContext, "startpageimg");
String startpageimg = HorsePushUtils.getSharedPreferences(mContext, "startpageimg");
File tStartPageImg = new File(HORSE_PUSH_WORK_PATH + startpageimg);
if (!tStartPageImg.exists() || "".equals(startpageimg)) {
try {
HorsePushModule.setSharedPreferences(mContext, "startpageimg", HORSE_PUSH_START_PAGE_IMG_FILE_NAME);//用默认图片
HorsePushUtils.setSharedPreferences(mContext, "startpageimg", HORSE_PUSH_START_PAGE_IMG_FILE_NAME);//用默认图片
copyAssetFileToFiles(HORSE_PUSH_START_PAGE_IMG_FILE_NAME, HORSE_PUSH_WORK_PATH + HORSE_PUSH_START_PAGE_IMG_FILE_NAME);
} catch (Exception e) {
}
Expand All @@ -177,7 +174,7 @@ private void checkStartPageImg() {
private void updateStartPageImg(String imgurl) {

if ("".equals(imgurl)) {
HorsePushModule.setSharedPreferences(mActivity, "startpageimg", HORSE_PUSH_START_PAGE_IMG_FILE_NAME);
HorsePushUtils.setSharedPreferences(mActivity, "startpageimg", HORSE_PUSH_START_PAGE_IMG_FILE_NAME);
return;
}

Expand All @@ -186,7 +183,7 @@ private void updateStartPageImg(String imgurl) {
} catch (Exception e) {
}

final String nowStartPageImg = HorsePushModule.getSharedPreferences(mActivity, "startpageimg");
final String nowStartPageImg = HorsePushUtils.getSharedPreferences(mActivity, "startpageimg");
if (HORSE_PUSH_START_PAGE_IMG_FILE_NAME.equals(nowStartPageImg))
return;

Expand All @@ -210,7 +207,7 @@ public void onFailure(HttpException arg0, String arg1) {

@Override
public void onSuccess(ResponseInfo<File> arg0) {
HorsePushModule.setSharedPreferences(mActivity, "startpageimg", HORSE_PUSH_START_PAGE_IMG_FILE_NAME);
HorsePushUtils.setSharedPreferences(mActivity, "startpageimg", HORSE_PUSH_START_PAGE_IMG_FILE_NAME);
new File(HORSE_PUSH_WORK_PATH + nowStartPageImg).delete();

}
Expand All @@ -224,14 +221,15 @@ public static String getJSBundleFile() {

//得到启动图片的img地址
public static String getStartPageImgPath(Activity activity) {
String startpageimg = HorsePushModule.getSharedPreferences(activity, "startpageimg");
String startpageimg = HorsePushUtils.getSharedPreferences(activity, "startpageimg");
return HORSE_PUSH_WORK_PATH + (!"".equals(startpageimg) ? startpageimg : HORSE_PUSH_START_PAGE_IMG_FILE_NAME);
}


public static String getJSBundleFile(Activity activity) {
mActivity = activity;

instanceHorsepush.checkUpdate();//更新
activity.startActivity(new Intent().setClass(activity, HorsePushStartPage.class));
return getJSBundleFile();
}

Expand Down Expand Up @@ -268,7 +266,7 @@ private void checkUpdate() {
params.addBodyParameter("screensize", HorsePushUtils.getScreenSize(mContext));
params.addBodyParameter("brand", android.os.Build.BRAND);
params.addBodyParameter("model", android.os.Build.MODEL);
params.addBodyParameter("extradata", HorsePushModule.getExtraData(mContext));
params.addBodyParameter("extradata", HorsePushUtils.getExtraData(mContext));

//Log.d("11111111111111111----------", String.valueOf(System.currentTimeMillis()));

Expand All @@ -282,12 +280,11 @@ private void checkUpdate() {
@Override
public void onSuccess(ResponseInfo<String> responseInfo) {
updateInfo(responseInfo.result);
//System.out.println("返回的json字符串:" + responseInfo.result);
}

@Override
public void onFailure(HttpException e, String s) {
// Toast.makeText(mContext, "shibai" + e.toString(), 1).show();
// 判断重试次数和到了多少
if (requestRetryCount < requestRetryActionTime.length) {
checkUpdate();//重试
return;
Expand Down Expand Up @@ -323,7 +320,6 @@ private void updateInfo(String jsonStr) {
downloadFile(!"".equals(javaPatchDownlink) ? DOWN_JAVA_PATCH : DOWN_JAVA);
return;//app更新的优先级最高
}
//Toast.makeText(mContext, "检查js" + String.valueOf(jsDownlinkMd5.equals(jsFileMd5)), 1).show();
if (!jsDownlinkMd5.equals(jsFileMd5)) {
downloadFile(!"".equals(jsPatchDownlink) ? DOWN_JS_PATCH : DOWN_JS);
} else {
Expand All @@ -332,7 +328,6 @@ private void updateInfo(String jsonStr) {
}
} catch (Exception e) {
finishStartPage(2000);
//Toast.makeText(mContext,"1111"+e.toString(),1).show();
}
}

Expand Down Expand Up @@ -361,11 +356,9 @@ private void downloadFile(final int downTag) {
String fileMd5 = HorsePushMd5.getFileMD5String(new File(HORSE_PUSH_WORK_PATH + netMd5 + fileName));
if (fileMd5.equals(netMd5)) {
downloadFileSuccess(downTag);
//Toast.makeText(mContext, "buzouxiazai", 1).show();
return;
}

//Toast.makeText(mContext, "zouxiazai", 1).show();
HttpUtils http = new HttpUtils();
http.download(url, HORSE_PUSH_WORK_PATH + netMd5 + ".t", true, true, new RequestCallBack<File>() {
@Override
Expand Down Expand Up @@ -460,6 +453,7 @@ public void onClick(DialogInterface dialog, int which) {

//整个app下载成功
private void updateApk() {
finishStartPage(10);
String tempFileMd5 = "";

final File apkPath = new File(HORSE_PUSH_WORK_PATH + javaDownlinkMd5 + ".apk");
Expand Down Expand Up @@ -500,7 +494,6 @@ private void updateJs() {
tempFileMd5 = HorsePushMd5.getFileMD5String(new File(jsPath));
} catch (Exception e) {
}
//Toast.makeText(mContext, "22222" + tempFileMd5 + "---" + jsDownlinkMd5, 1).show();
finishStartPage(3000);
if (!tempFileMd5.equals(jsDownlinkMd5) || mActivity == null)
return;
Expand All @@ -510,8 +503,8 @@ private void updateJs() {
File f = new File(HORSE_PUSH_WORK_PATH + jsDownlinkMd5 + ".js");
File n = new File(HORSE_PUSH_WORK_PATH + HORSE_PUSH_JS_FILE_NAME);
f.renameTo(n);
HorsePushModule.setSharedPreferences(mContext, "js_name", HORSE_PUSH_JS_FILE_NAME);
HorsePushModule.setSharedPreferences(mContext, "js_name_md5", tempFileMd5);
HorsePushUtils.setSharedPreferences(mContext, "js_name", HORSE_PUSH_JS_FILE_NAME);
HorsePushUtils.setSharedPreferences(mContext, "js_name_md5", tempFileMd5);
reApp(mContext);

}
Expand Down Expand Up @@ -542,14 +535,15 @@ private void finishStartPage(int time) {
try {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
public void run() {
if (HorsePushStartPage.mActivity == null)
return;
checkUpdateTime = System.currentTimeMillis();
HorsePushStartPage.mActivity.finish();
Log.d("1111111111111111", "HorsePushStartPage.mActivity.finish()" );
}
}, time);
} catch (Exception e) { }
} catch (Exception e) {
}
}

/**
Expand Down

0 comments on commit 1e895ce

Please sign in to comment.