Java源码示例:com.github.javiersantos.appupdater.objects.Update
示例1
private String getDescriptionUpdate(Context context, Update update, Display display) {
if (descriptionUpdate == null || TextUtils.isEmpty(descriptionUpdate)) {
switch (display) {
case DIALOG:
if (update.getReleaseNotes() != null && !TextUtils.isEmpty(update.getReleaseNotes())) {
if (TextUtils.isEmpty(descriptionUpdate))
return update.getReleaseNotes();
else
return String.format(context.getResources().getString(R.string.appupdater_update_available_description_dialog_before_release_notes), update.getLatestVersion(), update.getReleaseNotes());
} else {
return String.format(context.getResources().getString(R.string.appupdater_update_available_description_dialog), update.getLatestVersion(), UtilsLibrary.getAppName(context));
}
case SNACKBAR:
return String.format(context.getResources().getString(R.string.appupdater_update_available_description_snackbar), update.getLatestVersion());
case NOTIFICATION:
return String.format(context.getResources().getString(R.string.appupdater_update_available_description_notification), update.getLatestVersion(), UtilsLibrary.getAppName(context));
}
}
return descriptionUpdate;
}
示例2
@Override
protected Update doInBackground(Void... voids) {
if (updateFrom == UpdateFrom.XML || updateFrom == UpdateFrom.JSON) {
Update update = UtilsLibrary.getLatestAppVersion(updateFrom, xmlOrJsonUrl);
if (update != null) {
return update;
} else {
AppUpdaterError error = updateFrom == UpdateFrom.XML ? AppUpdaterError.XML_ERROR
: AppUpdaterError.JSON_ERROR;
if (listener != null) {
listener.onFailed(error);
}
cancel(true);
return null;
}
} else {
Context context = contextRef.get();
if (context != null) {
return UtilsLibrary.getLatestAppVersionHttp(context, updateFrom, gitHub);
} else {
cancel(true);
return null;
}
}
}
示例3
private String getDescriptionUpdate(Context context, Update update, Display display) {
if (descriptionUpdate == null || TextUtils.isEmpty(descriptionUpdate)) {
switch (display) {
case DIALOG:
if (update.getReleaseNotes() != null && !TextUtils.isEmpty(update.getReleaseNotes())) {
if (TextUtils.isEmpty(descriptionUpdate))
return update.getReleaseNotes();
else
return String.format(context.getResources().getString(R.string.appupdater_update_available_description_dialog_before_release_notes), update.getLatestVersion(), update.getReleaseNotes());
} else {
return String.format(context.getResources().getString(R.string.appupdater_update_available_description_dialog), update.getLatestVersion(), UtilsLibrary.getAppName(context));
}
case SNACKBAR:
return String.format(context.getResources().getString(R.string.appupdater_update_available_description_snackbar), update.getLatestVersion());
case NOTIFICATION:
return String.format(context.getResources().getString(R.string.appupdater_update_available_description_notification), update.getLatestVersion(), UtilsLibrary.getAppName(context));
}
}
return descriptionUpdate;
}
示例4
static Boolean isUpdateAvailable(Update installedVersion, Update latestVersion) {
if (latestVersion.getLatestVersionCode() != null && latestVersion.getLatestVersionCode() > 0) {
return latestVersion.getLatestVersionCode() > installedVersion.getLatestVersionCode();
} else {
if (!TextUtils.equals(installedVersion.getLatestVersion(), "0.0.0.0") && !TextUtils.equals(latestVersion.getLatestVersion(), "0.0.0.0")) {
try
{
final Version installed = new Version(installedVersion.getLatestVersion());
final Version latest = new Version(latestVersion.getLatestVersion());
return installed.compareTo(latest) < 0;
} catch (Exception e)
{
e.printStackTrace();
return false;
}
} else return false;
}
}
示例5
/**
* Execute AppUpdaterUtils in background.
*/
public void start() {
latestAppVersion = new UtilsAsync.LatestAppVersion(context, true, updateFrom, gitHub, xmlOrJSONUrl, new AppUpdater.LibraryListener() {
@Override
public void onSuccess(Update update) {
Update installedUpdate = new Update(UtilsLibrary.getAppInstalledVersion(context), UtilsLibrary.getAppInstalledVersionCode(context));
if (updateListener != null) {
updateListener.onSuccess(update, UtilsLibrary.isUpdateAvailable(installedUpdate, update));
} else if (appUpdaterListener != null) {
appUpdaterListener.onSuccess(update.getLatestVersion(), UtilsLibrary.isUpdateAvailable(installedUpdate, update));
} else {
throw new RuntimeException("You must provide a listener for the AppUpdaterUtils");
}
}
@Override
public void onFailed(AppUpdaterError error) {
if (updateListener != null) {
updateListener.onFailed(error);
} else if (appUpdaterListener != null) {
appUpdaterListener.onFailed(error);
} else {
throw new RuntimeException("You must provide a listener for the AppUpdaterUtils");
}
}
});
latestAppVersion.execute();
}
示例6
@Override
public void startElement(String uri, String localName,
String name, Attributes attributes) throws SAXException {
super.startElement(uri, localName, name, attributes);
if (localName.equals("update")) {
update = new Update();
}
}
示例7
static Boolean isUpdateAvailable(Update installedVersion, Update latestVersion) {
Boolean res = false;
if (latestVersion.getLatestVersionCode() != null && latestVersion.getLatestVersionCode() > 0) {
return latestVersion.getLatestVersionCode() > installedVersion.getLatestVersionCode();
} else {
if (!TextUtils.equals(installedVersion.getLatestVersion(), "0.0.0.0") && !TextUtils.equals(latestVersion.getLatestVersion(), "0.0.0.0")) {
Version installed = new Version(installedVersion.getLatestVersion());
Version latest = new Version(latestVersion.getLatestVersion());
res = installed.compareTo(latest) < 0;
}
}
return res;
}
示例8
static Update getLatestAppVersion(UpdateFrom updateFrom, String url) {
if (updateFrom == UpdateFrom.XML){
RssParser parser = new RssParser(url);
return parser.parse();
} else {
return new JSONParser(url).parse();
}
}
示例9
@Override
protected void onPostExecute(Update update) {
super.onPostExecute(update);
if (listener != null) {
if (UtilsLibrary.isStringAVersion(update.getLatestVersion())) {
listener.onSuccess(update);
} else {
listener.onFailed(AppUpdaterError.UPDATE_VARIES_BY_DEVICE);
}
}
}
示例10
@Test
public void Version_UpdateAvailable_1() {
Update installedUpdate = new Update();
installedUpdate.setLatestVersion("1.0.0");
Update latestUpdate = new Update();
latestUpdate.setLatestVersion("1.0.5");
assertTrue(UtilsLibrary.isUpdateAvailable(installedUpdate, latestUpdate));
}
示例11
@Test
public void Version_UpdateAvailable_2() {
Update installedUpdate = new Update();
installedUpdate.setLatestVersion("1.0.0");
Update latestUpdate = new Update();
latestUpdate.setLatestVersion("1.0.0.33");
assertTrue(UtilsLibrary.isUpdateAvailable(installedUpdate, latestUpdate));
}
示例12
@Test
public void Version_UpdateAvailable_3() {
Update installedUpdate = new Update();
installedUpdate.setLatestVersion("1.0.0");
Update latestUpdate = new Update();
latestUpdate.setLatestVersion("2.0.0.5");
assertTrue(UtilsLibrary.isUpdateAvailable(installedUpdate, latestUpdate));
}
示例13
@Test
public void Version_UpdateAvailable_4() {
Update installedUpdate = new Update();
installedUpdate.setLatestVersion("2.1.3.alpha.42.RC");
Update latestUpdate = new Update();
latestUpdate.setLatestVersion("2.1.3.alpha.45.RC");
assertTrue(UtilsLibrary.isUpdateAvailable(installedUpdate, latestUpdate));
}
示例14
@Test
public void VersionCode_UpdateAvailable_1() {
Update installedUpdate = new Update("1.0.0", 1);
Update latestUpdate = new Update("1.0.0", 2);
assertTrue(UtilsLibrary.isUpdateAvailable(installedUpdate, latestUpdate));
}
示例15
@Test
public void VersionCode_UpdateAvailable_2() {
Update installedUpdate = new Update("1.0.0", 1);
Update latestUpdate = new Update("1.0.1", 2);
assertTrue(UtilsLibrary.isUpdateAvailable(installedUpdate, latestUpdate));
}
示例16
@Test
public void VersionCode_UpdateAvailable_3() {
Update installedUpdate = new Update("1.0.0", 1);
Update latestUpdate = new Update("0.9.0", 2);
assertTrue(UtilsLibrary.isUpdateAvailable(installedUpdate, latestUpdate));
}
示例17
@Test
public void Version_UpdateNotAvailable_1() {
Update installedUpdate = new Update();
installedUpdate.setLatestVersion("1.0.9");
Update latestUpdate = new Update();
latestUpdate.setLatestVersion("1.0.5");
assertTrue(!UtilsLibrary.isUpdateAvailable(installedUpdate, latestUpdate));
}
示例18
@Test
public void Version_UpdateNotAvailable_2() {
Update installedUpdate = new Update();
installedUpdate.setLatestVersion("1.0.9");
Update latestUpdate = new Update();
latestUpdate.setLatestVersion("1.0.9.0");
assertTrue(!UtilsLibrary.isUpdateAvailable(installedUpdate, latestUpdate));
}
示例19
@Test
public void VersionCode_UpdateNotAvailable_1() {
Update installedUpdate = new Update("1.0.0", 1);
Update latestUpdate = new Update("1.0.0", 1);
assertTrue(!UtilsLibrary.isUpdateAvailable(installedUpdate, latestUpdate));
}
示例20
@Test
public void VersionCode_UpdateNotAvailable_2() {
Update installedUpdate = new Update("1.0.0", 2);
Update latestUpdate = new Update("1.0.1", 1);
assertTrue(!UtilsLibrary.isUpdateAvailable(installedUpdate, latestUpdate));
}
示例21
@Test
public void VersionCode_UpdateNotAvailable_3() {
Update installedUpdate = new Update("1.0.0", 1);
Update latestUpdate = new Update("1.2.0", 1);
assertTrue(!UtilsLibrary.isUpdateAvailable(installedUpdate, latestUpdate));
}
示例22
@Test
public void UpdateAvailable_Basic_JSON() throws Throwable {
final CountDownLatch signal = new CountDownLatch(1);
uiThreadTestRule.runOnUiThread(new Runnable() {
@Override
public void run() {
new AppUpdaterUtils(InstrumentationRegistry.getTargetContext())
.setUpdateFrom(UpdateFrom.JSON)
.setUpdateJSON("https://raw.githubusercontent.com/javiersantos/AppUpdater/master/app/src/androidTest/java/com/github/javiersantos/appupdater/files/update-available-basic.json")
.withListener(new AppUpdaterUtils.UpdateListener() {
@Override
public void onSuccess(Update update, Boolean isUpdateAvailable) {
assertTrue(isUpdateAvailable);
signal.countDown();
}
@Override
public void onFailed(AppUpdaterError error) {
assertTrue("Failed", false);
signal.countDown();
}
})
.start();
}
});
signal.await(30, TimeUnit.SECONDS);
}
示例23
@Test
public void UpdateAvailable_VersionCode_JSON() throws Throwable {
final CountDownLatch signal = new CountDownLatch(1);
uiThreadTestRule.runOnUiThread(new Runnable() {
@Override
public void run() {
new AppUpdaterUtils(InstrumentationRegistry.getTargetContext())
.setUpdateFrom(UpdateFrom.JSON)
.setUpdateJSON("https://raw.githubusercontent.com/javiersantos/AppUpdater/master/app/src/androidTest/java/com/github/javiersantos/appupdater/files/update-available-versionCode.json")
.withListener(new AppUpdaterUtils.UpdateListener() {
@Override
public void onSuccess(Update update, Boolean isUpdateAvailable) {
assertTrue(isUpdateAvailable);
signal.countDown();
}
@Override
public void onFailed(AppUpdaterError error) {
assertTrue("Failed", false);
signal.countDown();
}
})
.start();
}
});
signal.await(30, TimeUnit.SECONDS);
}
示例24
@Test
public void UpdateAvailable_Basic_XML() throws Throwable {
final CountDownLatch signal = new CountDownLatch(1);
uiThreadTestRule.runOnUiThread(new Runnable() {
@Override
public void run() {
new AppUpdaterUtils(InstrumentationRegistry.getTargetContext())
.setUpdateFrom(UpdateFrom.XML)
.setUpdateJSON("https://raw.githubusercontent.com/javiersantos/AppUpdater/master/app/src/androidTest/java/com/github/javiersantos/appupdater/files/update-available-basic.xml")
.withListener(new AppUpdaterUtils.UpdateListener() {
@Override
public void onSuccess(Update update, Boolean isUpdateAvailable) {
assertTrue(isUpdateAvailable);
signal.countDown();
}
@Override
public void onFailed(AppUpdaterError error) {
assertTrue("Failed", false);
signal.countDown();
}
})
.start();
}
});
signal.await(30, TimeUnit.SECONDS);
}
示例25
@Test
public void UpdateAvailable_VersionCode_XML() throws Throwable {
final CountDownLatch signal = new CountDownLatch(1);
uiThreadTestRule.runOnUiThread(new Runnable() {
@Override
public void run() {
new AppUpdaterUtils(InstrumentationRegistry.getTargetContext())
.setUpdateFrom(UpdateFrom.XML)
.setUpdateJSON("https://raw.githubusercontent.com/javiersantos/AppUpdater/master/app/src/androidTest/java/com/github/javiersantos/appupdater/files/update-available-versionCode.xml")
.withListener(new AppUpdaterUtils.UpdateListener() {
@Override
public void onSuccess(Update update, Boolean isUpdateAvailable) {
assertTrue(isUpdateAvailable);
signal.countDown();
}
@Override
public void onFailed(AppUpdaterError error) {
assertTrue("Failed", false);
signal.countDown();
}
})
.start();
}
});
signal.await(30, TimeUnit.SECONDS);
}
示例26
@Test
public void UpdateAvailable_GOOGLEPLAY() throws Throwable {
final CountDownLatch signal = new CountDownLatch(1);
uiThreadTestRule.runOnUiThread(new Runnable() {
@Override
public void run() {
new AppUpdaterUtils(InstrumentationRegistry.getTargetContext())
.setUpdateFrom(UpdateFrom.GOOGLE_PLAY)
.withListener(new AppUpdaterUtils.UpdateListener() {
@Override
public void onSuccess(Update update, Boolean isUpdateAvailable) {
assertTrue(isUpdateAvailable);
signal.countDown();
}
@Override
public void onFailed(AppUpdaterError error) {
assertTrue("Failed", false);
signal.countDown();
}
})
.start();
}
});
signal.await(30, TimeUnit.SECONDS);
}
示例27
@Test
public void UpdateAvailable_JSON() throws Throwable {
final CountDownLatch signal = new CountDownLatch(1);
uiThreadTestRule.runOnUiThread(new Runnable() {
@Override
public void run() {
new AppUpdaterUtils(InstrumentationRegistry.getTargetContext())
.setUpdateFrom(UpdateFrom.GITHUB)
.setGitHubUserAndRepo("javiersantos", "AppUpdater")
.withListener(new AppUpdaterUtils.UpdateListener() {
@Override
public void onSuccess(Update update, Boolean isUpdateAvailable) {
assertTrue(isUpdateAvailable);
signal.countDown();
}
@Override
public void onFailed(AppUpdaterError error) {
assertTrue("Failed", false);
signal.countDown();
}
})
.start();
}
});
signal.await(30, TimeUnit.SECONDS);
}
示例28
@Test
public void UpdateAvailable_Basic_JSON() throws Throwable {
final CountDownLatch signal = new CountDownLatch(1);
uiThreadTestRule.runOnUiThread(new Runnable() {
@Override
public void run() {
new AppUpdaterUtils(InstrumentationRegistry.getTargetContext())
.setUpdateFrom(UpdateFrom.JSON)
.setUpdateJSON("https://raw.githubusercontent.com/javiersantos/AppUpdater/master/app/src/androidTest/java/com/github/javiersantos/appupdater/files/no-update-available-basic.json")
.withListener(new AppUpdaterUtils.UpdateListener() {
@Override
public void onSuccess(Update update, Boolean isUpdateAvailable) {
assertFalse(isUpdateAvailable);
signal.countDown();
}
@Override
public void onFailed(AppUpdaterError error) {
assertTrue("Failed", false);
signal.countDown();
}
})
.start();
}
});
signal.await(30, TimeUnit.SECONDS);
}
示例29
@Test
public void UpdateAvailable_VersionCode_JSON() throws Throwable {
final CountDownLatch signal = new CountDownLatch(1);
uiThreadTestRule.runOnUiThread(new Runnable() {
@Override
public void run() {
new AppUpdaterUtils(InstrumentationRegistry.getTargetContext())
.setUpdateFrom(UpdateFrom.JSON)
.setUpdateJSON("https://raw.githubusercontent.com/javiersantos/AppUpdater/master/app/src/androidTest/java/com/github/javiersantos/appupdater/files/no-update-available-versionCode.json")
.withListener(new AppUpdaterUtils.UpdateListener() {
@Override
public void onSuccess(Update update, Boolean isUpdateAvailable) {
assertFalse(isUpdateAvailable);
signal.countDown();
}
@Override
public void onFailed(AppUpdaterError error) {
assertTrue("Failed", false);
signal.countDown();
}
})
.start();
}
});
signal.await(30, TimeUnit.SECONDS);
}
示例30
@Test
public void UpdateAvailable_Basic_XML() throws Throwable {
final CountDownLatch signal = new CountDownLatch(1);
uiThreadTestRule.runOnUiThread(new Runnable() {
@Override
public void run() {
new AppUpdaterUtils(InstrumentationRegistry.getTargetContext())
.setUpdateFrom(UpdateFrom.XML)
.setUpdateJSON("https://raw.githubusercontent.com/javiersantos/AppUpdater/master/app/src/androidTest/java/com/github/javiersantos/appupdater/files/no-update-available-basic.xml")
.withListener(new AppUpdaterUtils.UpdateListener() {
@Override
public void onSuccess(Update update, Boolean isUpdateAvailable) {
assertFalse(isUpdateAvailable);
signal.countDown();
}
@Override
public void onFailed(AppUpdaterError error) {
assertTrue("Failed", false);
signal.countDown();
}
})
.start();
}
});
signal.await(30, TimeUnit.SECONDS);
}