A Minimalist App Update Checker for Android
updaate is a Smart Android Library for checking your Android App Updates on Google Play Store. updaate checks the updates and notifies with beautiful material design dialogs. You can customize the dialog in various ways.
Download and Check out the demo app for more
It's first release, so everything is new.
Check out Releases
Tab for Info.
updaate has these features:
- Checking Update for Your Android App on Google Play Store
- Material Design UI
- 3 Themes
- Highly Customizable
This library is built by this conifg:
- Compile SDK 32
- Minimum SDK 21
- Target SDK 32
- Built on Java 1.8
- Material Design using Androidx Library
- Jsoup for Parsing
- Lottiefiles for Animations
Here is some screenshots of the library
Basic | Default | Advanced |
---|---|---|
![]() |
![]() |
![]() |
If you're using old gradle versions then follow this.
Add this in your root build.gradle
file (not your module build.gradle
file):
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
If you're using new gradle versions then follow this.
Add this in your settings.gradle
file:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Add this to your module's build.gradle
file (make sure the version matches the JitPack badge above):
(Always use the latest version. Current Latest version is )
dependencies {
...
implementation 'com.github.instaal-io:updaate:1.0'
}
Usage (Wiki)
updaate has plenty of Options. Use Default theme or you can customize as much as you want. Here the usages for updaate:
SIMPLE THEME (Wiki)
A Simple Material Design Theme. Basic Functionalities with Basic Customization
new updaate(this)
.setTheme(updaate.SIMPLE_THEME)
.check());
new updaate(this)
.setTheme(updaate.SIMPLE_THEME)
.setAppIcon(R.mipmap.ic_launcher)
.setTitle("An Update Available")
.setPositiveLabel("Update Now")
.setNegativeLabel("Maybe Later")
.setBackgroundColor(Color.parseColor("#FFFFFF"))
.setNegativeButtonColor(Color.parseColor("#dddddd"))
.setPrimaryColor(R.color.colorPrimary)
.setSecondaryColor(Color.parseColor("#666666"))
.setPositiveTextColor(Color.WHITE)
.shouldCheckAfterLaunch(1)
.setCancelable(true)
.check());
DEFAULT THEME (Wiki)
A well-designed theme with a lot customizations. If no theme is selected then it will be selected automatically.
new updaate(this)
.setTheme(updaate.DEFAULT_THEME)
.check());
new updaate(this)
.setTheme(updaate.DEFAULT_THEME)
.setAppIcon(R.mipmap.ic_launcher)
.setTitle("An Update Available")
.setPositiveLabel("Update Now")
.setNegativeLabel("Maybe Later")
.setIconColor(R.color.colorAccent)
.setBackgroundColor(Color.parseColor("#FFFFFF"))
.setNegativeButtonColor(Color.parseColor("#dddddd"))
.setPrimaryColor(R.color.colorPrimary)
.setSecondaryColor(Color.parseColor("#666666"))
.setPositiveTextColor(Color.WHITE)
.hideNegativeButton(true)
.setDialogCornerRadius(10)
.setButtonCornerRadius(10)
.shouldCheckAfterLaunch(1)
.setCancelable(true)
.check());
ADVANCED THEME (Wiki)
A highly customizable theme with tons of options, animation header as well as still images.
new updaate(this)
.setTheme(updaate.ADVANCED_THEME)
.check());
new updaate(this)
.setTheme(updaate.ADVANCED_THEME)
.setTitle("An Update Available")
.setPositiveLabel("Update Now")
.setNegativeLabel("Maybe Later")
.setBackgroundColor(Color.parseColor("#FFFFFF"))
.setPrimaryColor(R.color.colorPrimary)
.setSecondaryColor(Color.parseColor("#666666"))
.setPositiveTextColor(Color.WHITE)
.hideNegativeButton(true)
.setDialogCornerRadius(10)
.setButtonCornerRadius(10)
.useImageInsteadAnim(false)
.setHeaderAnimation(updaate.ANIMATION_1)
.setHeaderImage(updaate.IMAGE_3)
.shouldCheckAfterLaunch(1)
.setCancelable(true)
.check());
Here are the detailed customizations.
These are available for all the themes.
.setTheme()
- For selecting Theme. If not set then it'll choose the DEFAULT Theme..setTitle()
- For Changing the Title..setPositiveLabel()
- For Changing the Positive Button Text..setNegativeLabel()
- For Changing the Negative Button Text..setBackgroundColor()
- For Changing the Background Color..setPrimaryColor()
- For Changing the Primary Color (Color of Title, Latest Version and Positive Button Background)..setSecondaryColor()
- For Changing the Secondary Color (Color of Your Version, Negative Button Text)..setPositiveTextColor()
- For Changing the Positive Text Color..shouldCheckAfterLaunch()
- After how many launch, the library will recheck for update. If not set it will check in every launch..setCancelable()
- For Setting the dialog to be cancelable if touch outside the dialog..check()
- Start Checking. IT MUST BE CALLED.
These customizations will work only for specific theme.
.setAppIcon()
- For Changing the App Icon..setNegativeButtonColor()
- For Changing the Negative Button Color.
.setAppIcon()
- For Changing the App Icon..setIconColor()
- For Changing the App Icon Color. Works properly if the icon is a vector..setNegativeButtonColor()
- For Changing the Negative Button Color..hideNegativeButton()
- Show or Hide the Negative Button..setDialogCornerRadius()
- For Changing the Radius of Whole Dialog Box..setButtonCornerRadius()
- For Changing the Radius of the Buttons.
.hideNegativeButton()
- Show or Hide the Negative Button..setDialogCornerRadius()
- For Changing the Radius of Whole Dialog Box..setButtonCornerRadius()
- For Changing the Radius of the Buttons..useImageInsteadAnim()
- For choosing Image insted of Animation as Header..setHeaderAnimation()
- For Selecting Animation..setHeaderImage()
- For Selecting Header.
Attributes (Wiki)
Keyword | Type | Values | Description |
---|---|---|---|
setTheme |
String | SIMPLE, DEFAULT, ADVANCED | Select From Prebuilt Theme |
setAppIcon |
Drawable | R.drawable, R.mipmap | Dialog Top Icon |
setIconColor |
Int | R.color, Color.Name, Color.parse | Color for App Icon (Must be vector) |
setTitle |
String | Any Text | Dialog Title |
setPositiveLabel |
String | Any Text | Positive Button Text |
setNegativeLabel |
String | Any Text | Negative Button Text |
setBackgroundColor |
Int | R.color, Color.Name, Color.parse | Dialog Background Color |
setPrimaryColor |
Int | R.color, Color.Name, Color.parse | Color for Primary Objects |
setSecondaryColor |
Int | R.color, Color.Name, Color.parse | Color for Secondary Objects |
setPositiveTextColor |
Int | R.color, Color.Name, Color.parse | Color for Positive Button Text |
setNegativeButtonColor |
Int | R.color, Color.Name, Color.parse | Negative Button Background Color |
useImageInsteadAnim |
boolean | true, false | Use Image instead of Animation as Header |
setHeaderAnimation |
String | ANIMATION_1, ANIMATION_2 etc | Select from Prebuilt Animations |
setHeaderImage |
String | IMAGE_1, IMAGE_2 etc | Select from Prebuilt Images |
setCancelable |
boolean | true, false | Cancelable if touched outside of dialog |
hideNegativeButton |
boolean | true, false | Hide or Show Negative text/button |
setButtonCornerRadius |
int | Integer | Corner Radius for Buttons |
setDialogCornerRadius |
int | Integer | Corner Radius for Whole Dialog |
shouldCheckAfterLaunch |
Int | Integer | Again Check for Update on (N)th Launch |
check |
Start Checking for update |
Here are some things you should remember:
- Always call
check()
at the end. Library won't work without it. - If you don't set any them then the Default Theme will be selected automatically.
- If
shouldCheckAfterLaunch
is not used then lib will check for update in every launch. - If the app is not live on store, then it won't show any dialog
- If the app is already latest version, then it won't show any dialog.
Please fork this repository and contribute back using pull requests.
Any contributions, large or small, major features, bug fixes, are welcomed and appreciated.
Let me know which features you want in the future in Request Feature
tab.
If this project helps you a little bit, then give a to Star ⭐ the Repo.
Created with Love by Instaal Studio & K M Rejowan Ahmmed
Copyright 2022 Instaal Studio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.