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);
}