Changelog - a android library, it helps developers display the history of changes in their applications

Overview

Changelog

MinAPI

Changelog is a android library, it helps developers display the history of changes in their applications.

Supports Locales, Layout directions, Dark-Mode & it's very customizable!

You can find a sample code of Changelog in this repository.

Screenshots

Ltr-English Rtlized-Farsi Default-BG & Dark-Mode
ACTIVITY ACTIVITY ACTIVITY
Customization-Icons
ACTIVITY

Installation

repositories {
    maven { url "https://jitpack.io" }
}
dependencies {
    implementation "com.github.am3n:Changelog:NEWEST-VERSION"
}

Usage

Add log history as xml sources to /res/xml

Redesigned something Improved performance Added features Fixed reported bugs Redesigned something Improved performance Fixed reported bugs Added features Fixed reported bugs ">
<changelog>

    <release version="1.3.0" versioncode="70" date="2021-11-20">
        <text>Redesigned somethingtext>
        <info>Improved performanceinfo>
        <custom>Added featurescustom>
        <fix>Fixed reported bugsfix>
    release>

    <release version="1.2.0" versioncode="61" summary="Example summary" date="2021-3-2">
        <change>Redesigned somethingchange>
        <custom icon="R.drawable.ic_tools">Improved performancecustom>
        <fix>Fixed reported bugsfix>
    release>

    <release version="1.1.0" versioncode="44" date="2020-12-26">
        <new>Added featuresnew>
        <fix>Fixed reported bugsfix>
    release>

changelog>

The present function is used to show change log list.

Changelog.present(
    activity = this,
    presentMode = PresentMode.IF_NEEDED,
    presentFrom = Changelog.NEW_VERSIONS,
    ignoreAlphaBeta = false,
    background = Changelog.DEFAULT_BACKGROUND, /* or custom Drawable */
    title = Holder(
        text = getString(R.string.whats_new),
        font = ResourcesCompat.getFont(applicationContext, R.font.font_thin)
    ),
    button = Holder(
        text = getString(R.string._continue),
        color = ContextCompat.getColor(applicationContext, R.color.teal_700)
    ),
    defaultFont = ResourcesCompat.getFont(applicationContext, R.font.font_regular),
    changelogId = R.xml.changelog,
    /* to use rtl supporting provided by Android, Use `android:supportsRtl="true"` instead of `layoutDirection` */
    //layoutDirection = LayoutDirection
    onDismissOrIgnoredListener = {
        Toast.makeText(this, "onDismissOrIgnored", Toast.LENGTH_SHORT).show()
    }
)

If use layoutDirection should add this your project & handle Rtl supporting in your app by yourself.

">
<application
        android:supportsRtl="false">
application>

Of course, to support layout direction by yourself you can use A3 views in my library: https://github.com/am3n/NeedTool

The clear is used to reset this library history.

Changelog.clear(applicationContext)

Customization

  • Can add change logs in other locales (e.g. /res/xml-fa-rIR/)
بازطراحی صفحات بهبود عملکرد امکان جدید رفع مشکلات گزارش شده بازطراحی صفحات بهبود عملکرد رفع مشکلات گزارش شده امکان جدید رفع مشکلات گزارش شده ">
<changelog>

    <release version="۱.۳.۰" versioncode="70" date="1401/1/20">
        <text>بازطراحی صفحاتtext>
        <info>بهبود عملکردinfo>
        <custom>امکان جدیدcustom>
        <fix>رفع مشکلات گزارش شدهfix>
    release>

    <release version="۱.۲.۰" versioncode="61" summary="نمونه خلاصه" date="1400/11/2">
        <change>بازطراحی صفحاتchange>
        <custom icon="R.drawable.ic_tools">بهبود عملکردcustom>
        <fix>رفع مشکلات گزارش شدهfix>
    release>

    <release version="۱.۱.۰" versioncode="44" date="1400/9/26">
        <new>امکان جدیدnew>
        <fix>رفع مشکلات گزارش شدهfix>
    release>

changelog>

  • Can override the new, change, info, fix tag icons by creating your own custom icons with the same name as the drawables below:
    • new tag: R.drawable.ic_changelog_item_new
    • change tag: R.drawable.ic_changelog_item_change
    • info tag: R.drawable.ic_changelog_item_info
    • fix tag: R.drawable.ic_changelog_item_fix

  • Can change default icon for all custom tags that has no icon attribute by overriding the R.drawable.ic_changelog_item_custom_default
<release>
    ...
    <custom>Added featurescustom>
release>

  • Can override the new, change, info, fix & custom tag icon default colors. (e.g. /res/values/, /res/values-night/)
? ? ? ? ? ">
<resources>
    ...
    <color name="colorChangelogItemNew">?color>
    <color name="colorChangelogItemChange">?color>
    <color name="colorChangelogItemInfo">?color>
    <color name="colorChangelogItemFix">?color>
    <color name="colorChangelogItemCustom">?color>
resources>

Upcoming

  • Add presentIn option to show as dialog or bottom sheet or ...
  • Add custom animations option
  • Add some features from 'Credits' libraries

Contribution

If you've found an error in the library or sample, please file an issue. Patches are encouraged, and may be submitted by forking this project and submitting a pull request.

Credits

License

Copyright 2022 Amirhosein Barati

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 tiny Android app that can receive WhatsApp group message export files and parse message history stats.

A tiny Android app that can receive WhatsApp group message export files and parse message history stats.

ArchGuard Scanner for scan Git change history, scan source code by Chapi for Java, TypeScript, Kotlin, Go..、Java bytecode use for JVM languages, scan Jacoco test coverage.

Arch Scanner Requirements: JDK 12 Scanner: scan_git - Git commit history scan scan_jacoco - Jacoco scan scan_bytecode - for JVM languages known issues

Display's information about SpaceX crew members and ships by consuming a rest api and storing the data to display when the user is offline.

Space-X App Display's information about SpaceX crew members(look for ‘Crew’ section in rest api docs) and ships (look for ‘Ships’ section in rest api

Tiny app to monitor permission changes.
Tiny app to monitor permission changes.

Catcher Permission monitor. Tiny app to monitor permission changes. If any app will get INTERNET permission after an update you will get a notificatio

Unity-Android-SDK-Plugins - Android SDK/Library/Plugins (aar) for Unity Developers

Unity Android SDK Plugins Unity Android SDK Plugins is an Open Source project th

An easy to use android library to let devs know how much internet-data their app is consuming
An easy to use android library to let devs know how much internet-data their app is consuming

EasyAnalytics! an easy to use android library to let developers know how much internet-data their app is consuming. We can identify this as we want ba

Android app built with MVP architectural approach and uses Marvel Comics API that allows developers everywhere to access information about Marvel's vast library of comics. :zap:
Android app built with MVP architectural approach and uses Marvel Comics API that allows developers everywhere to access information about Marvel's vast library of comics. :zap:

Villains & Heroes Android app built with MVP architectural approach and uses Marvel Comics API that allows developers everywhere to access information

An library to help android developers working easly with activities and fragments (Kotlin version)
An library to help android developers working easly with activities and fragments (Kotlin version)

AFM An library to help android developer working easly with activities and fragments (Kotlin) Motivation Accelerate the process and abstract the logic

An app that allows you to search for Github profiles of users and their repositories [d.light Android Engineer Test], for the Android Engineer Role
An app that allows you to search for Github profiles of users and their repositories [d.light Android Engineer Test], for the Android Engineer Role

An app that allows you to search for Github profiles of users and their repositories [d.light Android Engineer Test], for the Android Engineer Role

Owner
Amirhosein Barati
Android Developer
Amirhosein Barati
Plannr is an organizational platform, in the form of an Android app, that helps university students coordinate their everyday routine, from schoolwork and expenses to their personal life.

Plannr Plannr is an organizational platform, in the form of an Android app, that helps university students coordinate their everyday routine, from sch

null 7 May 1, 2022
M-OV-ies - An Android Application that helps users find where to stream their favorite movies

Stream-ON Video Demo: Description: Final Project for CS50 - 2021: An Android App

null 0 Jan 1, 2022
Simple Application that helps individuals prioritize by directly comparing items in a list and ranking their importance to the individual

Analysis.Paralysis Simple Application that helps individuals prioritize by directly comparing items in a list and ranking their importance to them. Cu

Ryan Foster 0 Jun 19, 2022
This app aims at helping people keep track of their job applications, and remind them regularly about the same.

Applications Tracker Lately I have been applying for many roles, and it has become a hard task to keep track of all the applications. Spreadsheets are

Kartik Pant 4 Feb 20, 2022
StaCoAn is a crossplatform tool which aids developers, bugbounty hunters and ethical hackers performing static code analysis on mobile applications.

StaCoAn Not maintained anymore! Will be archived soon. StaCoAn is a crossplatform tool which aids developers, bugbounty hunters and ethical hackers pe

Vincent Cox 769 Dec 31, 2022
The application is a PoC that helps in identifying modern bankers, potentially malicious and remote controlling applications abusing Android AccessibilityService.

Motivation Project aims to help in: identifying keyloggers and events hijacking malicious applications such as Anubis/TeaBot, identifying a "fake bank

Krzysztof Pranczk 33 Dec 9, 2022
Android app that shows what happened today in the history.

Today History Android app Master: Develop: Code Coverage: App that shows what happened today in history. Details Written in Kotlin. Android Studio 2.1

MakinGIANTS 29 Oct 3, 2022
Git history is an android application that simply tracks GitHub repository's issues.

Git History About Git history is an android application that simply tracks GitHub repository's issues. You can search for user and get all public repo

Aditya Sutar 0 Oct 17, 2021
Android Bitcoin market app base on Jetpack Compose and MVI. The app displays current bitcoin market price and history price k-line charts.

compose-bitcoin Android Bitcoin market app base on Jetpack Compose and MVVM & MVI. Features Current bitcoin market price. K-line charts of history pri

Chen Pan 3 May 20, 2022