Loading repository data…
Loading repository data…
hummatli / repository
:sunny::package::racehorse: An Android library to check new versions(update) of your Android applications on the PlayStore (free, open source, third party).
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
AndroidAppUpdater is a free, open source, third party Android library for notifing update information to android apps installed on an android device. By its help, an old application is notified about update information from the Google Play Market.
Library has built with Kotlin language on Android Studio IDE and binaries have added to jcenter() maven repository.
You can check jCenter() download statistics on this link
There is a list of application using AndroidAppUpdater. It would be nice if see your app link there too. If you use this library and want to see your app in the start of the list please inform me or send a pull request.
Don't forget to start the protect to support us
New Feature: "Info Resolver". Now you can get information from your own formatted servicePortuguese: azzarr , Thanks!Hindi: dalwadi2, Thanks!GermanFrench: Zeldarck, Thanks!, Has changed sample apps to support French.Greek: Nikos Linakis, Thanks!.Download the demo app from this link - Demo App. You can easly test the lib's functionality.
To provide update information to your app you need to implement service responding json data about application current state. Structure of the json data is as below.
You can provide http:// and https:// services. Library works both of them.
Json with sample data. Link to working sample
{
"is_run_mode":"true",
"name":"AndroidAppUpdater Sample",
"uri_current":"com.mobapphome.mahandroidupdater.sample",
"version_code_current":"2",
"version_code_min":"1",
"update_info":"On version 1.0 we added bla bla",
"update_date":"16/07/2016"
}
is_run_mode - service mode: if it's false modul will not react to service and will not show dialogsname - name of the belonging appuri_current - current package pathversion_code_current - current version code avilableversion_code_min - Minimum version code, which does not work normal and had to force to updateupdate_info - Update informationupdate_date - Update dateIf one of the variables would not be on json, then modul will not repond to service and act, Try to implement all data.
You can check you json validity with this jsonlint.com
There is interface called IUpdateInfoResolver by the help of it you can fetch your update information form own structed service. For example JSON API, XML,Raw text and so on. For this reason there is special init() method accepting this variable. This feature has added by @andrewpros.
You can call with the same way in Kotlin and Java. Library contains samples both in Kotlin and Java
Library components:
AAUpdaterDlg- In this situation dialog show to user to update or install newer version and lets to postpone the action to later time and use applicationAAUpdaterRestricterDlg - In this situation dialog urges user to update or install newer version and dont alow use older versionThe porpose of lib to show automatically these dialogs on application start if there are any need for it.
- AAUpdaterDlg opens on following situation.
uri_current value is different from app's installed package urlversion_code_current value is greater than app's installed version on device- AAUpdaterRestricterDlg opens on all situation AAUpdaterDlg opens and following situation.
version_code_min value is greater than app's installed version on deviceBut when you develop your apps UI and want to show these dialogs there are test modes also and you can open dialogs by calling methods relatively
AAUpdaterController.testUpdaterDlg(activity) - AAUpdaterDlgAAUpdaterController.testRestricterDlg(activity) - AAUpdaterRestricterDlgThe lib has compiled with the gradle 4.6.
1) To import library to you project add following lines to project's build.gradle file.
The last stable version is 1.3.3
repositories {
maven { url 'https://dl.bintray.com/hummatli/maven/' }
}
dependencies {
//The android-app-updater libary
implementation 'com.mobapphome.library:android-app-updater:1.3.3'
//These dependencies have been used in this lib so you need to include them acording to gradle 3.0 and upper
implementation 'com.google.code.gson:gson:2.8.2'
implementation 'org.jsoup:jsoup:1.10.2'
}
2) On the start of your application call AAUpdaterController.init() method to initialize modul. For example: MainActivity's onCreate() method or in splash activity. Check http url is correct and points to your service on the web.
Code:
AAUpdaterController.init(activity,"http://highsoft.az/android-app-updater-sample.php")
3) When you quit app, you have to call AAUpdaterController.end() method to finalize modul. For example: MainActivity's onDestroy() method.
AAUpdaterController.end()
4) To customize AndroidAppUpdater dialog UI and overide colors set these values on your main projects color.xml file
<color name="android_app_upd_window_background_color">#FFFFFFFF</color>
<color name="android_app_upd_title_bar_color">#FF3F51B5</color>
<color name="android_app_upd_info_txt_color">#FF3F51B5</color>
<color name="android_app_upd_restricter_dlg_btn_pressed_color">#a33F51B5</color>
<color name="android_app_upd_restricter_dlg_btn_dark_state_color">#ff3F51B5</color>
<color name="android_app_upd_restricter_dlg_btn_light_state_color">#ffffffff</color>
<color name="android_app_upd_upd_dlg_btn_text_color">#ffFF4081</color>
5) Localization: Following languages is supporting by the lib - Supported Languages. To set localization to app use your own method or if it is static and don't change in program session you can just simply add LocaleUpdater.updateLocale(this, "your_lang"); in the start of your app. For examlpe LocaleUpdater.updateLocale(this, "ru");
6) To customize AndroidAppUpdater UI texts and overide them add these lines to main projects string.xml and set them values.
To help translators there prefixes on the name of strings
<!-- noun --> <string name="noun_android_app_upd_dlg_title">Update information</string>
<!-- Button texts-->
<string name="android_app_upd_dlg_btn_no_later_txt">Later</string>
<!--command verb--> <string name="cmnd_verb_android_app_upd_dlg_btn_no_close_txt">Close</string>
<!--command verb--> <string name="cmnd_verb_android_app_upd_dlg_btn_yes_update_txt">Update</string>
<!--command verb--> <string name="cmnd_verb_android_app_upd_dlg_btn_yes_install_txt">Install</string>
<string name="android_app_upd_dlg_btn_yes_open_new_txt">Open new v