Utility functions to perform dynamic operations on Android.

Overview

Dynamic Utils

License Build Status Release

A collection of static methods and packages to perform dynamic operations on Android 2.3 (API 9) and above.

Since v0.4.0, it uses 26.x.x support libraries so, minimum SDK will be Android 4.0 (API 14).
Since v2.0.0, it uses AndroidX so, first migrate your project to AndroidX.
Since v3.3.0, added Concurrent package to replace the deprecated AsyncTask API.
Since v4.1.0, it is dependent on Java 8 due to the dependency on AndroidX Core.
Since v4.3.0, it supports some helper methods to capture results via Barquode app.


Contents


Installation

It can be installed by adding the following dependency to your build.gradle file:

dependencies {
    // For AndroidX enabled projects.
    implementation 'com.pranavpandey.android:dynamic-utils:4.4.0'

    // For legacy projects.
    implementation 'com.pranavpandey.android:dynamic-utils:1.3.0'
}

Usage

It is divided into different classes according to their category for easy understanding and usage. This library is fully commented so I am highlighting some of the functions below, keep exploring for more hidden features.

For complete reference, please read the documentation.

Concurrent

A set of classes to perform quick or long running asynchronous operations. It is built according to the familiar AsyncTask API to provide a lightweight replacement and easy migrations as that was deprecated in Android 11 (API 30).

It uses java.util.concurrent package in the background to do most of the operations. Please check the task package to know more about the basic implementation.

/**
 * Extend the base DynamicTask class and implement the required methods.
 */
public class Task<Params, Progress, Result> extends DynamicTask<Params, Progress, Result> {

    /**
     * This method will be called before doing the background work.
     */
    @MainThread
    protected void onPreExecute() {
        // Initialize on the main thread like showing the progress dialog.
    }

    /**
     * This method will be called for doing the background work.
     *
     * @param params The optional parameters required for the work.
     *
     * @return The optional result object.
     */
    @WorkerThread
    protected abstract @Nullable Result doInBackground(@Nullable Params params) {
        // Perform the task in the background and return the result.
    }

    /**
     * This method will be called on publishing the progress.
     *
     * @param progress The progress returned by the work.
     */
    @MainThread
    protected void onProgressUpdate(@Nullable DynamicResult<Progress> progress) {
        // Optional method to publish progress on the main thread.
    }

    /**
     * This method will be called after completing the work.
     *
     * @param result The result returned by the work.
     */
    @MainThread
    protected void onPostExecute(@Nullable DynamicResult<Result> result) {
        // Finalize on the main thread and do operations with the result.
    }
}

Execute the above task by configuring your own ExecutorService or by using the DynamicExecutor.

You can also call DynamicTask.execute() which uses the DynamicExecutor with a ThreadPoolExecutor in the background. It is an experimental feature and may change in the future.


DynamicAnimUtils

Helper class to perform animation related operations.

  • void playAnimation(view, animator) - Play an animator animation on a view.

DynamicBitmapUtils

Helper class to perform bitmap operations.

  • Bitmap getBitmapFormDrawable(drawable) - Get bitmap from the supplied drawable.

  • Bitmap resizeBitmap(bitmap, newWidth, newHeight) - Resize bitmap to the new width and height.

  • Bitmap applyColorFilter(bitmap, colorFilter) - Apply color filter on the supplied bitmap.

  • Bitmap applyColorFilter(bitmap, color) - Apply monochrome color filter on the supplied bitmap.

  • @ColorInt int getDominantColor(bitmap) - Extract the dominant color form the supplied bitmap.

DynamicColorUtils

Helper class to change colors dynamically.

  • @ColorInt int adjustAlpha(color, factor) - Adjust alpha of a color according to the given parameter.

  • @ColorInt int calculateContrast(color1, color2) - Calculate color contrast difference between two colors based on luma value according to XYZ color space.

  • @ColorInt int getAccentColor(color) - Calculate accent color based on the given color for dynamic theme generation.

  • @ColorInt int getColorDarkness(color) - Calculate darkness of a color.

  • @ColorInt int getContrastColor(color, contrastWithColor) - Calculate contrast of a color based on the given base color so that it will be visible always on top of the base color.

  • @ColorInt int getLessVisibleColor(color) - Calculate less visible color of a given color.

  • @ColorInt int getTintColor(color) - Calculate tint based on a given color for better readability.

  • boolean isColorDark(color) - Detect light or dark color.

  • @ColorInt int shiftColor(color, by) - Shift a color according to the given parameter.

DynamicDeviceUtils

Helper class to detect device specific features like Telephony, etc.

  • boolean hasTelephony(context) - To detect if device has telephony feature or not by using PackageManager.

DynamicDrawableUtils

Helper class to perform drawable operations.

  • void colorizeDrawable(drawable, wrap, color, mode) - Colorize and return the mutated drawable so that, all other references do not change.

  • Drawable setBackground(view, drawable) - Set background of a given view in an efficient way by detecting the Android SDK at runtime.

DynamicLinkUtils

A collection of functions to perform various operations on the URL or to generate intents.

  • void shareApp(context, title, message) - Share application via system default share intent so that user can select from the available apps if more than one apps are available.

  • void viewInGooglePlay(context, packageName) - View app in the Google Play or Android Market.

  • void rateApp(context) - View app in the Google Play or Android Market.

  • void moreApps(context, publisher) - View other apps of a Publisher in the Google Play or Android Market.

  • void viewUrl(context, url) - View any URL in the available app or browser.

  • void report(context, appName, email) - Ask questions or submit bug report to the developer via email.

DynamicPackageUtils

Helper class to get package or app related information.

  • ComponentName getComponentName(context) - Get component name from the given context.

  • CharSequence getAppLabel(context) - Get application label from the given context.

  • String getAppVersion(context) - Get application version name from the given context.

  • Drawable getAppIcon(context) - Load application icon from the given context.

  • boolean isSystemApp(applicationInfo) - To detect the given ApplicationInfo is a system app or not.

DynamicUnitUtils

Helper class to perform unit conversions.

  • int convertDpToPixels(dp) - To convert DP into pixels.

  • int convertPixelsToDp(pixels) - To convert pixels into DP.

  • int convertSpToPixels(sp) - To convert SP into pixels.

  • int convertPixelsToSp(pixels) - To convert pixels into SP.

DynamicSdkUtils

Helper class to detect the Android SDK version at runtime so that we can provide the user experience accordingly. Pass true in the alternate method to check for equality.

  • boolean is14() - To detect if the current API version is 14 (Android 4.0) or above.

  • boolean is14(equals) - To detect if the current API version is equal to 14 (Android 4.0).

...

  • boolean is30() - To detect if the current API version is 30 (Android 11) or above.

  • boolean is30(equals) - To detect if the current API version is equal to 30 (Android 11).

DynamicViewUtils

Helper class to perform view operations.

  • void setLightStatusBar(view, isLight) - Set light status bar if we are using light primary color on Android 23 and above.

  • void setLightNavigationBar(view, isLight) - Set light navigation bar if we are using light primary color on API 26 and above.

DynamicWindowUtils

Helper class to perform window operations and to detect system configurations at runtime.

  • Point getAppUsableScreenSize(context) - Get the app usable screen size.

  • Point getRealScreenSize(context) - Get the real screen size.

  • Point getNavigationBarSize(context) - Get the on-screen navigation bar size.

  • boolean isNavigationBarPresent(context) - Detect if on-screen navigation bar is present or not.

  • boolean isNavigationBarThemeSupported(context) - Detect support for navigation bar theme.


Barquode for Android

Added helper methods in intent utils to capture results via Barquode app.

Capture

/**
 * Checks whether the device can capture the matrix result.
 *
 * @param context The context to get the package manager.
 *
 * @return {@code true} if the device has at least one activity to capture the matrix result.
 */
public static boolean isMatrixCaptureResult(@Nullable Context context);

/**
 * Returns the intent to capture the matrix result.
 *
 * @param context The context to get the intent.
 *
 * @return The intent to capture the matrix result.
 */
public static @NonNull Intent getMatrixCaptureResultIntent(@Nullable Context context);

Result

Barquode app returns the result in the form of intent extras.

String com.pranavpandey.matrix.intent.extra.CODE_DATA
String com.pranavpandey.matrix.intent.extra.CODE_FORMAT


Translations

  • German (de) - Flubberlutsch
  • Hindi (hi) - Siddh Narhari
  • Indonesian (in) - Gamal Kevin A
  • Italian (it) - Nicola
  • Portuguese (pt) - Jorge Alexandre | Matheus Coelho
  • Russian (ru) - Maxim Anisimov
  • Spanish (es) - Dave
  • Turkish (tr) - Fatih Fırıncı
  • Chinese (Simplified) (zh-rCN) - 残念
  • Chinese (Traditional) (zh-rTW) - 會呼吸的風

Author

Pranav Pandey

GitHub Follow on Twitter Donate via PayPal


License

Copyright 2017-2021 Pranav Pandey

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.
You might also like...
A backport of the SwitchPreference component that was introduced on Android 4 (ICS / level 14). This port works on Android 2.1+ (Eclair MR1 / level 7).

Android Switch Preference Backport A backport of the SwitchPreference component that was introduced on Android 4 (ICS / level 14). This port works on

Wizard Pager is a library that provides an example implementation of a Wizard UI on Android, it's based of Roman Nurik's wizard pager (https://github.com/romannurik/android-wizardpager)
Wizard Pager is a library that provides an example implementation of a Wizard UI on Android, it's based of Roman Nurik's wizard pager (https://github.com/romannurik/android-wizardpager)

Wizard Pager Wizard Pager is a library that provides an example implementation of a Wizard UI on Android, it's based of Roman Nurik's wizard pager (ht

Sample project created to show some of the best Android practices to work in the Android UI Layer. The UI layer of this project has been implemented using MVP or MVVM (without binding engine) to show how this patterns works. This project is used during the talk Make your native android Toasts Fancy. A library that takes the standard Android toast to the next level with a variety of styling options. Style your toast from code.
Make your native android Toasts Fancy. A library that takes the standard Android toast to the next level with a variety of styling options. Style your toast from code.

FancyToast-Android Prerequisites Add this in your root build.gradle file (not your module build.gradle file): allprojects { repositories { ... ma

Make your native android Dialog Fancy. A library that takes the standard Android Dialog to the next level with a variety of styling options. Style your dialog from code.
Make your native android Dialog Fancy. A library that takes the standard Android Dialog to the next level with a variety of styling options. Style your dialog from code.

FancyAlertDialog-Android Prerequisites Add this in your root build.gradle file (not your module build.gradle file): allprojects { repositories { ..

Xamarin.Android provides open-source bindings of the Android SDK for use with .NET managed languages such as C#
Xamarin.Android provides open-source bindings of the Android SDK for use with .NET managed languages such as C#

Xamarin.Android Xamarin.Android provides open-source bindings of the Android SDK for use with .NET managed languages such as C#. Build Status Platform

A Tinder-like Android library to create the swipe cards effect. You can swipe left or right to like or dislike the content.

Swipecards Travis master: A Tinder-like cards effect as of August 2014. You can swipe left or right to like or dislike the content. The library create

Bootstrap style widgets for Android, with Glyph Icons
Bootstrap style widgets for Android, with Glyph Icons

Android-Bootstrap Android Bootstrap is an Android library which provides custom views styled according to the Twitter Bootstrap Specification. This al

[] A fast PDF reader component for Android development
[] A fast PDF reader component for Android development

This project is no longer maintained. You can find a good replacement here, which is a fork relying on Pdfium instead of Vudroid/MuPDF for decoding PD

Releases(v4.4.7)
  • v4.4.7(Nov 27, 2022)

    • pranavpandey/dynamic-utils@d30a4b987cb9f954a7dbda4f8995186c08124432 pranavpandey/dynamic-utils@4c3a61bcbc5aec264b4dfe463d1dc4d611b8689c - Improvements.
    • pranavpandey/dynamic-utils@bef0987ac8dda9745869cae2bd21a5f127c5bceb - Updated gradle plugin to 8.0.0-alpha08.
    Source code(tar.gz)
    Source code(zip)
  • v4.4.6(Sep 17, 2022)

    • pranavpandey/dynamic-utils@ce189c8f8a30efb44b6e2523b368c2fb53c0d055 - Updated AndroidX to 1.9.0.
    • pranavpandey/dynamic-utils@e40f36d7b6b879e8a3223a74f2c365f99d2b44b5 - Updated gradle plugin to 7.4.0-alpha10.
    • pranavpandey/dynamic-utils@4f0d52e64f9292a47683e85f2804318c2b3611e0 - Added support to replace color components.
    Source code(tar.gz)
    Source code(zip)
  • v4.4.5(Aug 4, 2022)

    • pranavpandey/dynamic-utils@0ebc8f3f496df43bae5ffc27b4d01ce2d723dec9 - Improved translations.
    • pranavpandey/dynamic-utils@56810d2d56dfc4446069f0629146a3cfc5855884 - Updated gradle plugin to 7.4.0-alpha08.
    Source code(tar.gz)
    Source code(zip)
  • v4.4.4(Jul 22, 2022)

    • pranavpandey/dynamic-utils@6d42897103e06f81d6b6e329611e68325784c9ee - Improved translations.
    • pranavpandey/dynamic-utils@db9060e1f1969379e45af227801a2bd4d23d033c - Improved support for RTL layout.
    • pranavpandey/dynamic-utils@776c5392ef5014747c38c40192c8ac2c9d25cc51 - Updated gradle plugin to 7.4.0-alpha08.
    Source code(tar.gz)
    Source code(zip)
  • v4.4.3(Jun 16, 2022)

    • pranavpandey/dynamic-utils@8bd8ac67777e55014b0a9e18f5790ad892e9ac46 - Updated target SDK to 33.
    • pranavpandey/dynamic-utils@96720258fe813116784421658b2b710aa90c6248 - Updated AndroidX to 1.9.0-alpha05.
    • pranavpandey/dynamic-utils@8bd8ac67777e55014b0a9e18f5790ad892e9ac46 - Added helper methods to detect API 33.
    • pranavpandey/dynamic-utils@e9fbe4c51d3be8a2ab6c92f5efe18799a0ef1070 - Updated gradle plugin to 7.4.0-alpha03.
    Source code(tar.gz)
    Source code(zip)
  • v4.4.2(May 2, 2022)

    • pranavpandey/dynamic-utils@a6f13d18010b570cd6753f167f89ddeb0ecbcad8 - Reworked device utils.
    • pranavpandey/dynamic-utils@c954bac86f5fcaab1321dc5a954552597024f516 - Updated AndroidX to 1.8.0-beta01.
    • pranavpandey/dynamic-utils@926d1ca28ee631a5b93fc385d473cf4acc957ade - Updated gradle plugin to 7.3.0-alpha09.
    • pranavpandey/dynamic-utils@ea3d59958c826bf5ce2a87fb4864a7b5770badd0 - Added helper method to detect API level T.
    Source code(tar.gz)
    Source code(zip)
  • v4.4.1(Feb 7, 2022)

    • pranavpandey/dynamic-utils@cf0ae561578ddf6fe6f9180f46173c4cadcf6b75 - Added French translations.
    • pranavpandey/dynamic-utils@67c520e88bacc84c721eefd7a0c594a251f63daa - Updated AndroidX to 1.8.0-alpha03.
    • pranavpandey/dynamic-utils@a19b27e8f96968d80b01f68f678293107b7bb09c - Updated gradle plugin to 7.3.0-alpha01.
    • pranavpandey/dynamic-utils@9e9140b55f1a0fc899e4709f704255fb55a4fdfb - Improved support for light system bars.
    Source code(tar.gz)
    Source code(zip)
  • v4.4.0(Dec 14, 2021)

    • pranavpandey/dynamic-utils@95abd25843b395982efa61573aefd7dfd8970883 - Updated target SDK to 32.
    • pranavpandey/dynamic-utils@95abd25843b395982efa61573aefd7dfd8970883 - Added helper methods to detect API 32.
    • pranavpandey/dynamic-utils@5860374f6494929580ded5adbb06973a9ee665ad - Updated gradle plugin to 7.2.0-alpha05.
    Source code(tar.gz)
    Source code(zip)
  • v4.3.2(Oct 17, 2021)

    • pranavpandey/dynamic-utils@96aa818354f2f4d5fb451dcbd0b8cbd6afcc88e5 - Updated AndroidX to 1.7.0-rc01.
    • pranavpandey/dynamic-utils@6912f45db90e7a83650c8d90fd0e2ba77b79c2a6 - Added new task flag for intent chooser.
    Source code(tar.gz)
    Source code(zip)
  • v4.3.1(Oct 10, 2021)

  • v4.3.0(Oct 9, 2021)

    • pranavpandey/dynamic-utils@97badbed2fd6759dc33555d8c60523c0fcd3f215 - Updated AndroidX to 1.7.0-beta02.
    • pranavpandey/dynamic-utils@d28ee3e4755ef7b6aa35291c63e92a311a38a308 - Updated gradle plugin to 7.1.0-alpha13.
    • pranavpandey/dynamic-utils@16091c815f7113ac2a22f724d904916725cfb703 - Do not adjust state color automatically.
    • pranavpandey/dynamic-utils@b877f9cadb7a70b7bb067626c7e2dc7ab6df3e7f - Updated bitmap, file, link and intent utils.
    • pranavpandey/dynamic-utils@88a74eb175bb281d2bba9f254bf9f1fc21af00da - Added Wi-Fi and camera features in device utils.

    Added queries in AndroidManifest file for API 31 and above.

    Barquode for Android

    Added helper methods in intent utils to capture results via Barquode app.

    Source code(tar.gz)
    Source code(zip)
  • v4.2.0(Aug 8, 2021)

    • pranavpandey/dynamic-utils@cbebb40605f4eea5832013eef82742d1022e0436 - Updated gradle plugin to 7.1.0-alpha06.
    • pranavpandey/dynamic-utils@f294117a212290db709cb42a94eb272868e5eb09 - Implemented visible contrast for tint color.

    Refactored utils package to util, please update imports accordingly.

    Source code(tar.gz)
    Source code(zip)
  • v4.1.0(Jul 20, 2021)

    • pranavpandey/dynamic-utils@e22168ad5be6307f38e5fa4273965f025fc2fc39 - Updated target SDK to 31.
    • pranavpandey/dynamic-utils@34acb61c9864b62d21f480fd33e5ce801652f1a8 - Updated AndroidX to 1.6.0.
    • pranavpandey/dynamic-utils@e22168ad5be6307f38e5fa4273965f025fc2fc39 - Updated gradle plugin to 7.1.0-alpha03.
    • pranavpandey/dynamic-utils@e22168ad5be6307f38e5fa4273965f025fc2fc39 - Java 8 dependency, update accordingly.
    • pranavpandey/dynamic-utils@460be6000e15f70fe70bbadf57860417e84da705 - Handled exception with layer drawables.
    • pranavpandey/dynamic-utils@2a77ed27dc07b241c9cc3384b47e473ba883faeb pranavpandey/dynamic-utils@307d35d91e4e685624bbaa318badc144773dde34 pranavpandey/dynamic-utils@52293f564813998464c7ea069bc411f8b871cb98 - Improved color utils contrast ratio.

    Reworked window and view utils to provide better compatibility.

    • pranavpandey/dynamic-utils@871367878e4ea920dbdd3c33e11724050403f36d - Handled display exception in window utils.
    • pranavpandey/dynamic-utils@e22168ad5be6307f38e5fa4273965f025fc2fc39 - Fixed navigation bar insets on API 30 as it was not working on some devices like Samsung when Game mode is enabled. So, using the newer method to detect screen size from API 31.
    Source code(tar.gz)
    Source code(zip)
  • v4.0.1(Jun 16, 2021)

    • pranavpandey/dynamic-utils@411fd4465598072a036f12226c06ec35a38f222c - Updated AndroidX to 1.6.0-rc01.
    • pranavpandey/dynamic-utils@411fd4465598072a036f12226c06ec35a38f222c - Updated javadoc for link and intent utils.
    Source code(tar.gz)
    Source code(zip)
  • v4.0.0(Jun 15, 2021)

    • pranavpandey/dynamic-utils@487cfacbfafb9387ba6eaed89da18c71b2240529 - Updated AndroidX to 1.6.0-beta02.
    • pranavpandey/dynamic-utils@b58de41f8a70e3c437ff6e8301cb6d1bdd578008 - Updated gradle plugin to 7.1.0-alpha02.
    • pranavpandey/dynamic-utils@4f3a135b3c7d541c0ca5b811e9fd03e3078fa65f - Initial support for API 31 (Android 12).
    • pranavpandey/dynamic-utils@ef20b5b4def7a299264f9a0f3a1fca459f2e459c - Added method to vibrate device.
    • pranavpandey/dynamic-utils@635e5a460c6adcb980fc0f312635b9273d67ab09 - Added Chinese (Traditional) translations.
    • pranavpandey/dynamic-utils@e3bde2eb3e72c7a5c943868dac6a4ee023e5970a pranavpandey/dynamic-utils@f4374d0016c3157d09e91028460ab3b42ae51de5 - Improved color generation.

    Major changes related to file, link, package, view and window utils. Please update accordingly if required.

    • pranavpandey/dynamic-utils@3c0032501fa1dfa644b46d152c72b433c7e73896 - Improved support for API 30 and above.
    • pranavpandey/dynamic-utils@18168ffb2b9361ad460fd5d2f1e5279c8f9b9610 pranavpandey/dynamic-utils@3c57e3a916c8033d473727ef6cf960a4421082a2 - Reworked link and package utils.
    Source code(tar.gz)
    Source code(zip)
  • v3.4.1(Jan 30, 2021)

  • v3.4.0(Jan 28, 2021)

    • pranavpandey/dynamic-utils@1a4a557f52f76dcf7009958181793e782eec7433 - Updated AndroidX to 1.5.0-beta01.
    • pranavpandey/dynamic-utils@9c4fb4718a7dba378ab3aacb04c79c8e1abd6aba - Updated gradle plugin to 7.0.0-alpha05.
    • pranavpandey/dynamic-utils@14f00694859869083ebc40eae529529c68f3329f - Added method to detect Xiaomi MIUI.
    • pranavpandey/dynamic-utils@ee5bd61334a0f2b058991e0d430a44dce61ead20 - Added loader to load views asynchronously.
    • pranavpandey/dynamic-utils@3a24c121682f623c028c281002ec909d0d3734b8 pranavpandey/dynamic-utils@122354619d5c16d6782a7c8e2b78fc340493b0b7 - Added cache and watcher packages.

    Major changes related to task utils, please update accordingly.

    Source code(tar.gz)
    Source code(zip)
  • v3.3.0(Aug 25, 2020)

    • pranavpandey/dynamic-utils@fb1b245cf58294a0f54555c291b71f56d976be5c - Updated target SDK to 30.
    • pranavpandey/dynamic-utils@9f5792333751a1de97fa0ae285992e86056ce2cb - Added concurrent package.
    • pranavpandey/dynamic-utils@080ad2a82536de8c3c84eb8870f0bc799e8bef75 - Updated AndroidX to 1.5.0-alpha01.
    • pranavpandey/dynamic-utils@687942b4a3775f47e278a5565e8b41f5beeae894 - Updated gradle plugin to 4.2.0-alpha07.
    • pranavpandey/dynamic-utils@f7be3db1794262a6f45434df178c79be9b217d72 - Added support for CMYK color model.
    • pranavpandey/dynamic-utils@531568d0200a366410abec7f55ef6f00d4eabdb3 - Added support for creating new intents.
    • pranavpandey/dynamic-utils@b666963aa8f967d4d8e3e0541d8e8249539d9004 - Added method to check the email client.
    • pranavpandey/dynamic-utils@212dc2ce09519c1eb503ab4466f7cc9933efc7f7 - Improved bitmap generation from view.
    • pranavpandey/dynamic-utils@ab8a7f108a5ae100cb30859c0a80929fd737199b - Improved package and window utils.
    • pranavpandey/dynamic-utils@5f1699221da0120e82998245eddb0873003da09d - Added more helper methods for remote views.
    • pranavpandey/dynamic-utils@2d0904f7ceed4ce150f1a93df9902bbb2ea17cb8 pranavpandey/dynamic-utils@77c78f638a0c9c3d09de7a0bdf2e46fb746e42ca - Added Russian and Portuguese translations.

    Concurrent package to perform asynchronous operations. Please read the documentation for more info.

    Source code(tar.gz)
    Source code(zip)
  • v3.2.1(Mar 12, 2020)

  • v3.2.0(Mar 12, 2020)

    • pranavpandey/dynamic-utils@3d63c0d9a10ec6f86f9ddd20e96b38edf92992de - Refactored public constants.
    • pranavpandey/dynamic-utils@067206b6e1f3e22990fad419501a2d01a15a8cf2 - Updated gradle plugin to 4.1.0-alpha02.
    • pranavpandey/dynamic-utils@6f74298e013e3f8e7249cb6cb86eee78b91d231e - Added support to consume window insets.
    • pranavpandey/dynamic-utils@bbca2d92c3869e7138140ba59c6897a922ccd51a - Updated color utils to adjust darker colors.
    • pranavpandey/dynamic-utils@b68fb37cd47228da376f1b79487e6c1c8773831b - Pass mime type check if file URI is null.
    • pranavpandey/dynamic-utils@63c7ae706157f6d1c84990b387936ffd2bc0f6b3 - Added method to set remote view text size.
    Source code(tar.gz)
    Source code(zip)
  • v3.1.0(Feb 1, 2020)

    • pranavpandey/dynamic-utils@d1166cc9b64b24b7fb5cbc6d82f96614a4c332aa - Updated AndroidX to 1.3.0-alpha01.
    • pranavpandey/dynamic-utils@84defda7ec438efcc3081261698a2c0e58b4f283 - Updated gradle plugin to 4.0.0-alpha09.
    • pranavpandey/dynamic-utils@89888fad40ebedba5ce788a057ced87f667db63c - Removed deprecated version utils.
    • pranavpandey/dynamic-utils@be6dba18494d2959cd028959c008c48b2be358be - Added annotations for drawable utils.
    Source code(tar.gz)
    Source code(zip)
  • v3.0.2(Oct 23, 2019)

    • pranavpandey/dynamic-utils@7a188ea2ef1f1d29470616650ee55a3f96e0e50c - Improved link utils.
    • pranavpandey/dynamic-utils@6c5556a34ef5596ef3c831183ac7fd7ccb502946 - Added intent utils.
    Source code(tar.gz)
    Source code(zip)
  • v3.0.1(Oct 12, 2019)

    • pranavpandey/dynamic-utils@d43e4472046e5f7836ca318dbbefbd86b60934e5 - Updated AndroidX to 1.2.0-beta01.
    • pranavpandey/dynamic-utils@f9b9d6a70c645bb91b71d1f7c7aadaafab7ec78c - Updated copy to clipboard method.
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Oct 4, 2019)

    • pranavpandey/dynamic-utils@36761000b7c0ee465149acbde86cd0da7236736a - Updated AndroidX to 1.2.0-alpha04.
    • pranavpandey/dynamic-utils@baf0206a2ae55c65a425ad553d599d3b6174f078 - Updated gradle plugin to 3.6.0-alpha12.
    • pranavpandey/dynamic-utils@df1c451ff00143ee6e7d87ff8ccbb96a2bd44624 pranavpandey/dynamic-utils@414ca89282af0156cb7a67ce6778e83c4f25a1c9 - Added support for API 29.
    • pranavpandey/dynamic-utils@4d114b61c414455fdb97ba1cd4378acea58a7031 - Added insets methods in view utils.
    • pranavpandey/dynamic-utils@58a87e9f9abfb38ffdcab78a29004e56ed51a2eb - Added method to get status bar size.
    • pranavpandey/dynamic-utils@31d06e67854a894072a277083c09159287754a88 - Added methods for edge-to-edge content.
    • pranavpandey/dynamic-utils@1ef22e47d63f88a14d880f2dd013676335366faa - Fixed zip path traversal vulnerability.
    • pranavpandey/dynamic-utils@ac837bd7977d31a655ddfcc551339f344cc2f68b - Added support to compress bitmap.
    • pranavpandey/dynamic-utils@bbb855e8834f5bfac85af5bcbe33ad83d4d4bf9b - Improved bitmap generation from view.
    • pranavpandey/dynamic-utils@e4d6587ac2255e143e309400ab87aa24a0b2d7fd - Added DynamicSdkUtils for better API detection.
    • pranavpandey/dynamic-utils@ab57c0b100cdff8c2ab762fecdabe738293aaf61 - Added Hindi translations (thanks to Siddh Narhari).

    It has various bug fixes and improvements, please update accordingly.

    Source code(tar.gz)
    Source code(zip)
  • v2.3.0(Mar 17, 2019)

    • pranavpandey/dynamic-utils@ed12ed14c8cbb2a8f21755c9fa8d753837c7a1a8 - Updated AndroidX to 1.1.0-alpha05.
    • pranavpandey/dynamic-utils@e074477f0af336c0a56e27b0928a725b09bc8285 - Improved bitmap URI generation.
    • pranavpandey/dynamic-utils@e31d9944d73b4e8e2ac4b0942f8a0c97b8f69399 - Updated gradle plugin to 3.5.0-alpha07.
    • pranavpandey/dynamic-utils@1a49786b6f532cb6b5857ff2a8003ebeb3a988f8 - Added more methods to create corner drawable.
    • pranavpandey/dynamic-utils@72c2ce0d5dbb0b9c61ca1cd2b75dbc053d167487 - Added support for creating bitmap from a view.
    • pranavpandey/dynamic-utils@c52cd934a3e6a366b9e0bd3a92a615bec9a33f90 pranavpandey/dynamic-utils@ed51373afaf8e67d2ea2f3d9e770bf1623ca77bd - Added support for Google feedback with crash info.

    Refactored getBitmapFormDrawable(Drawable) => getBitmapFromDrawable(Drawable).

    Source code(tar.gz)
    Source code(zip)
  • v2.2.0(Jan 22, 2019)

    • pranavpandey/dynamic-utils@29d9d976f6ef95a37c36324bbc55435543f863e6 - Improved tint color generation.
    • pranavpandey/dynamic-utils@38fb17bdc0021c57b3be35ec3a7b25768afbecff - Updated AndroidX to 1.1.0-alpha03.
    • pranavpandey/dynamic-utils@19fb84dc17cd50ecad5244414e75e44eca428927 - Updated gradle plugin to 3.5.0-alpha01.
    Source code(tar.gz)
    Source code(zip)
  • v2.1.1(Dec 21, 2018)

    • pranavpandey/dynamic-utils@52ee6a92b2224378de5226ecf3adb78b5fd9024b - Added Italian (it) translations.
    • pranavpandey/dynamic-utils@52ee6a92b2224378de5226ecf3adb78b5fd9024b - Added Indonesian (in) translations.
    • pranavpandey/dynamic-utils@3aa7057d09ff8eb8bf89efc234d87d79ff772fe1 - Updated gradle plugin to 3.4.0-alpha09.
    Source code(tar.gz)
    Source code(zip)
  • v2.1.0(Dec 16, 2018)

    • pranavpandey/dynamic-utils@62cc17169bfcf8145dd328048b559736f6e1ad90 - Refactored dependencies.
    • pranavpandey/dynamic-utils@2ed405c165fa8f126ab39a78496c36512e917a11 - Improved contrast and tint colors.
    • pranavpandey/dynamic-utils@2ed405c165fa8f126ab39a78496c36512e917a11 - Updated AndroidX to 1.1.0-alpha02.
    • pranavpandey/dynamic-utils@5100623082da5a32c1f3ce22bcad2af19d69153b - Updated gradle plugin to 3.4.0-alpha08.

    Internally used support packages are now available as API. Include them explicitly in build.gradle file to use any other version.

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Nov 8, 2018)

    • pranavpandey/dynamic-utils@5f1a825a4850e2bea3edfcef25ce26df815ba5b1 - Migrated to AndroidX.
    • pranavpandey/dynamic-utils@f01e478100eccea89d8c8a2cc262ffada42d5fa0 - Improved javadocs generation.
    • pranavpandey/dynamic-utils@f01e478100eccea89d8c8a2cc262ffada42d5fa0 - Updated gradle plugin to 3.4.0-alpha02.

    Migrate your project to AndroidX before using this version.

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Sep 24, 2018)

    • pranavpandey/dynamic-utils@b3d43ea4e797474d021d0cb9e6edfe2753fa5684 - Updated support library to 28.0.0.
    • pranavpandey/dynamic-utils@08d9ff19266e6b928d8ccb813b7525f656acc2b1 - Updated gradle plugin to 3.3.0-alpha11.
    • pranavpandey/dynamic-utils@a0c0f13b70ea48a16043fc276194f6b15e79de23 - Updated build tools to 28.0.2.
    • pranavpandey/dynamic-utils@f66d45da4366c74d063975ec2a0fb47c4a028f64 - Improved tint color and unit conversion.
    • pranavpandey/dynamic-utils@f66d45da4366c74d063975ec2a0fb47c4a028f64 - Added Android Pie method in version utils
    • pranavpandey/dynamic-utils@f66d45da4366c74d063975ec2a0fb47c4a028f64 - Added method for rounded corner drawable.
    Source code(tar.gz)
    Source code(zip)
Owner
Pranav Pandey
Software Developer & Designer
Pranav Pandey
A swipe button for Android with a circular progress bar for async operations

ProSwipeButton A swipe button for Android with a circular progress bar for async operations Gradle dependencies { ... compile 'in.shadowfax:pr

Shadowfax Technologies 340 Nov 13, 2022
Dynamic Speedometer and Gauge for Android. amazing, powerful, and multi shape :zap:

SpeedView Dynamic Speedometer, Gauge for Android. amazing, powerful, and multi shape ⚡ , you can change (colors, bar width, shape, text, font ...every

Anas Altair 1.2k Jan 3, 2023
:star2:A cool dynamic view library

ENViews ENViews, A cool dynamic view library.All designed by Nick Buturishvili ENViews, 一个华丽丽的动效控件库,所有控件原型取自Nick Buturishvili的设计作品 Preview Original de

Est 1.8k Jan 3, 2023
Android library used to create an awesome Android UI based on a draggable element similar to the last YouTube graphic component.

Draggable Panel DEPRECATED. This project is not maintained anymore. Draggable Panel is an Android library created to build a draggable user interface

Pedro Vicente Gómez Sánchez 3k Dec 6, 2022
TourGuide is an Android library that aims to provide an easy way to add pointers with animations over a desired Android View

TourGuide TourGuide is an Android library. It lets you add pointer, overlay and tooltip easily, guiding users on how to use your app. Refer to the exa

Tan Jun Rong 2.6k Jan 5, 2023
Bubbles for Android is an Android library to provide chat heads capabilities on your apps. With a fast way to integrate with your development.

Bubbles for Android Bubbles for Android is an Android library to provide chat heads capabilities on your apps. With a fast way to integrate with your

Txus Ballesteros 1.5k Jan 2, 2023
View that imitates Ripple Effect on click which was introduced in Android L (for Android 2.3+)

RippleView View that imitates Ripple Effect on click which was introduced in Android L. Usage For a working implementation, Have a look at the Sample

Muthuramakrishnan Viswanathan 1.2k Dec 30, 2022
A new canvas drawing library for Android. Aims to be the Fabric.js for Android. Supports text, images, and hand/stylus drawing input. The library has a website and API docs, check it out

FabricView - A new canvas drawing library for Android. The library was born as part of a project in SD Hacks (www.sdhacks.io) on October 3rd. It is cu

Antwan Gaggi 1k Dec 13, 2022
MarkdownView is an Android webview with the capablity of loading Markdown text or file and display it as HTML, it uses MarkdownJ and extends Android webview.

About MarkdownView (Markdown For Android) is an Android library that helps you display Markdown text or files (local/remote) as formatted HTML, and st

Feras Alnatsheh 1k Dec 20, 2022
SwipeBack for Android Activities to do pretty the same as the android "back-button" will do, but in a really intuitive way by using a swipe gesture

SwipeBack SwipeBack is for Android Activities to do pretty the same as the android "back-button" will do, but in a really intuitive way by using a swi

Hannes Dorfmann 697 Dec 14, 2022