Skip to content

Commit

Permalink
init
Browse files Browse the repository at this point in the history
  • Loading branch information
sunfusheng committed Feb 18, 2018
1 parent 81e8b20 commit a0587ca
Show file tree
Hide file tree
Showing 15 changed files with 200 additions and 42 deletions.
62 changes: 62 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
language: android
jdk: oraclejdk8
sudo: true

android:
components:
- tools
- platform-tools
- tools
- build-tools-27.0.3
- android-27
- sys-img-armeabi-v7a-android-27
- extra-android-support
- extra-android-m2repository
- extra-google-m2repository
- add-on
- extra
licenses:
- android-sdk-preview-license-52d11cd2
- android-sdk-license-.+
- google-gdk-license-.+

before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- "$HOME/.gradle/caches/"
- "$HOME/.gradle/wrapper/"
- "$HOME/.android/build-cache"

before_install:
- mkdir "$ANDROID_HOME/licenses" || true
- echo "d56f5187479451eabf01fb78af6dfcb131a6481e" > "$ANDROID_HOME/licenses/android-sdk-license"
- openssl aes-256-cbc -K $encrypted_0895791d098d_key -iv $encrypted_0895791d098d_iv
-in signings/keystore.jks.enc -out signings/keystore.jks -d
- gem install fir-cli

before_script:
- chmod +x gradlew

script:
- "./gradlew assembleRelease"

deploy:
provider: releases
api_key:
secure: R/OzMXCIDqSGJd+psZAmPtnEVsFNVWuStdqdTZh8yGPv8XeIPxs/njrMwsB5g+4j5uAMH21rc1xFClnwWCS1nHwwDQ6WcCC043aiwQFCQiLBMXNBS2YKaeGvZxshbkjyZo7vJPvXBdls3vBl/DkNFefnIQgCWjPMnZxYbD8hbqYUeprM7RUDcjafAHPedsqqvUB7Ca74RYaAVJHDxnxRTG3VF0zHG/UH3aT5NSglBl+SgCxrV+n4OXhZpBC3kqjsxBYjnMP0sLuSbDyz+i4zJ5nr6JmSBQMygN9Kvsf4bdbAaNkdsq0RqasWIM4ralU1hs2sf4VZi5/v6lD3FFUIaUuaG0JFr8DTMXkLllk5MqiQWpvntYaxlu+Tb+J9pQ6ljKkgrbomSaiNCg34e+nWhRiZBib8aGo0jLGR2wlJGJTVgGMVjss11Zx4Zm4DqvUSJM1J2OGgV10dscI7Y+zz2ANa06m+KW1q5QkCNoNbYKy3bIN2ne1RB9nUcqgo1kMZpUYQd7J6c+DaRPTSMF8QUO/2ggKyfWRjLO2tuWrlYmW7Udu7VCQsLhDOYA8E+5GxzKkquOShJIHn4X0QGZsDFNC6um6Pp4gBBsM/Aghwc2J5YDpbyt8ArycfUMG1EsjMfKdnbp7xxuctkgKk3kMaT/7uuoseZgSYoRurk/y2vqw=
file: Sample/outputs/FirUpdater.apk
skip_cleanup: true
on:
repo: sfsheng0322/FirUpdater
tags: true
all_branches: true

after_deploy:
- "./gradlew clean build bintrayUpload -PbintrayUser=sfsheng0322 -PbintrayKey=$BINTRAY_TOKEN -PdryRun=false"
- fir p Sample/outputs/FirUpdater.apk -T $FIR_TOKEN -c "`git cat-file tag $TRAVIS_TAG`"

notifications:
email:
- sfsheng0322@126.com
10 changes: 10 additions & 0 deletions FirUpdater/build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release'

android {
compileSdkVersion gradle.compileSdkVersion
Expand Down Expand Up @@ -29,3 +30,12 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:' + gradle.supportLibraryVersion
}

publish {
userOrg = 'sfsheng0322'
groupId = 'com.sunfusheng'
artifactId = 'FirUpdater'
publishVersion = gradle.versionName
desc = 'A updater of the fir.im'
website = 'https://github.com/sfsheng0322/FirUpdater'
}
38 changes: 19 additions & 19 deletions FirUpdater/src/main/java/com/sunfusheng/FirDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,6 @@ public class FirDialog {

private OnClickDownloadDialogListener onClickDownloadDialogListener;

public void setOnClickDownloadDialogListener(OnClickDownloadDialogListener onClickDownloadDialogListener) {
this.onClickDownloadDialogListener = onClickDownloadDialogListener;
}

public interface OnClickDownloadDialogListener {
void onClickDownload(DialogInterface dialog);

void onClickBackgroundDownload(DialogInterface dialog);

void onClickCancelDownload(DialogInterface dialog);
}

public void showAppInfoDialog(Context context, String title, String message) {
AlertDialog alertDialog = new AlertDialog.Builder(context)
.setTitle(title + "更新提示")
Expand All @@ -47,13 +35,13 @@ public void showAppInfoDialog(Context context, String title, String message) {
alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(Color.parseColor("#9a9a9a"));

try {
Field mAlert = AlertDialog.class.getDeclaredField("mAlert");
mAlert.setAccessible(true);
Object mAlertController = mAlert.get(alertDialog);
Field mMessage = mAlertController.getClass().getDeclaredField("mMessageView");
mMessage.setAccessible(true);
TextView mMessageView = (TextView) mMessage.get(mAlertController);
mMessageView.setTextColor(Color.parseColor("#9a9a9a"));
Field alert = AlertDialog.class.getDeclaredField("mAlert");
alert.setAccessible(true);
Object alertController = alert.get(alertDialog);
Field messageView = alertController.getClass().getDeclaredField("mMessageView");
messageView.setAccessible(true);
TextView textView = (TextView) messageView.get(alertController);
textView.setTextColor(Color.parseColor("#9a9a9a"));
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
Expand Down Expand Up @@ -91,4 +79,16 @@ public void dismissDownloadDialog() {
}
}

public void setOnClickDownloadDialogListener(OnClickDownloadDialogListener onClickDownloadDialogListener) {
this.onClickDownloadDialogListener = onClickDownloadDialogListener;
}

public interface OnClickDownloadDialogListener {
void onClickDownload(DialogInterface dialog);

void onClickBackgroundDownload(DialogInterface dialog);

void onClickCancelDownload(DialogInterface dialog);
}

}
36 changes: 20 additions & 16 deletions FirUpdater/src/main/java/com/sunfusheng/FirDownloader.java
Original file line number Diff line number Diff line change
Expand Up @@ -94,11 +94,11 @@ protected void downLoad() {
threadArr[i].start();
}
} else {
handler.sendEmptyMessage(FAILURE);
handler.sendEmptyMessage(ERROR);
}
} catch (Exception e) {
e.printStackTrace();
handler.sendEmptyMessage(FAILURE);
handler.sendEmptyMessage(ERROR);
}
}).start();
}
Expand Down Expand Up @@ -206,12 +206,12 @@ public void run() {
}
} else {
sp.edit().clear().apply();
handler.sendEmptyMessage(FAILURE);
handler.sendEmptyMessage(ERROR);
}
} catch (Exception e) {
sp.edit().clear().apply();
e.printStackTrace();
handler.sendEmptyMessage(FAILURE);
handler.sendEmptyMessage(ERROR);
}
}

Expand All @@ -220,23 +220,27 @@ public void cancel() {
}
}

private final int SUCCESS = 0x00000101;
private final int FAILURE = 0x00000102;
int lastProgress = 0;
private final int SUCCESS = 1000;
private final int ERROR = 1001;
private int lastProgress = 0;

private Handler handler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
if (onDownLoadListener != null) {
if (msg.what == SUCCESS) {
onDownLoadListener.onSuccess();
} else if (msg.what == FAILURE) {
onDownLoadListener.onError();
} else {
if (msg.what != lastProgress) {
lastProgress = msg.what;
onDownLoadListener.onProgress(msg.arg1, msg.arg2, msg.what);
}
switch (msg.what) {
case SUCCESS:
onDownLoadListener.onSuccess();
break;
case ERROR:
onDownLoadListener.onError();
break;
default:
if (msg.what != lastProgress) {
lastProgress = msg.what;
onDownLoadListener.onProgress(msg.arg1, msg.arg2, msg.what);
}
break;
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions FirUpdater/src/main/java/com/sunfusheng/FirNotification.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ public void createBuilder(Context context) {
builder.setSmallIcon(android.R.drawable.stat_sys_download);
builder.setAutoCancel(false);
builder.setOngoing(true);
builder.setShowWhen(false);
builder.setProgress(100, 7, false);
builder.setShowWhen(true);
builder.setProgress(100, 0, false);
builder.setOngoing(true);
builder.setShowWhen(false);
builder.setDefaults(NotificationCompat.DEFAULT_ALL);
Expand Down
3 changes: 0 additions & 3 deletions FirUpdater/src/main/res/values/strings.xml

This file was deleted.

45 changes: 45 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# FirUpdater

FIR 测试通道下 APK 更新器

<br/>

### 效果图

<img src="/resources/res.png" >

<br/>

#### Gradle:

compile 'com.sunfusheng:GroupRecyclerViewAdapter:<latest-version>'

<br/>

### 扫一扫[Fir.im](https://fir.im/GroupAdapter)二维码下载APK

<br/>

<img src="/resources/fir.im.png" style="width: 30%;" alt="s">

<br/>

### 关注我吧,让我们做朋友^_^

<img src="http://ourvm0t8d.bkt.clouddn.com/follow_me.png">

### 打个赏吧,给作者加点油^_^

<img src="http://ourvm0t8d.bkt.clouddn.com/reward_me.png" >

### 关于我

[GitHub: sfsheng0322](https://github.com/sfsheng0322)

[个人邮箱: sfsheng0322@126.com](https://mail.126.com/)

[个人博客: sunfusheng.com](http://sunfusheng.com/)

[简书主页](http://www.jianshu.com/users/88509e7e2ed1/latest_articles)

[新浪微博](http://weibo.com/u/3852192525)
36 changes: 35 additions & 1 deletion Sample/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
apply plugin: 'com.android.application'

Properties signingProperties = new Properties()
signingProperties.load(new FileInputStream(file("../signings/signing.properties")))

android {
compileSdkVersion gradle.compileSdkVersion
buildToolsVersion gradle.buildToolsVersion
Expand All @@ -17,10 +20,41 @@ android {
targetCompatibility JavaVersion.VERSION_1_8
}

signingConfigs {
release {
storeFile file(signingProperties['KEYSTORE_FILEPATH'])
storePassword signingProperties['STORE_PASSWORD']
keyAlias signingProperties['KEY_ALIAS']
keyPassword signingProperties['KEY_PASSWORD']
}
}

buildTypes {
release {
minifyEnabled false
buildConfigField "boolean", "debugMode", "false"
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
applicationVariants.all {
variant -> generateApk(variant)
}
}

debug {
buildConfigField "boolean", "debugMode", "true"
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
applicationVariants.all {
variant -> generateApk(variant)
}
}
}
}

def generateApk(variant) {
if (variant.buildType.name == "release") {
variant.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath + "/Sample/outputs")
variant.getPackageApplication().outputScope.apkDatas.forEach { apkData ->
apkData.outputFileName = "FirUpdater.apk"
}
}
}
Expand Down
Binary file added Sample/outputs/FirUpdater.apk
Binary file not shown.
1 change: 1 addition & 0 deletions Sample/outputs/output.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":1},"path":"FirUpdater.apk","properties":{"packageId":"com.sunfusheng.firupdater.sample","split":"","minSdkVersion":"14"}}]
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ buildscript {

dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.novoda:bintray-release:0.8.0'
}
}

Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3-all.zip
Binary file added signings/keystore.jks
Binary file not shown.
Binary file added signings/keystore.jks.enc
Binary file not shown.
4 changes: 4 additions & 0 deletions signings/signing.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
KEYSTORE_FILEPATH=../signings/keystore.jks
STORE_PASSWORD=sunfusheng
KEY_ALIAS=sunfusheng
KEY_PASSWORD=sunfusheng

0 comments on commit a0587ca

Please sign in to comment.