ckChangeLog - An Android Library to display a Change Log

Overview

ckChangeLog - An Android Library to display a Change Log

Screenshot Screenshot

This library provides an easy way to display a change log in your app.

Features

  • Displays changes since the last app update
  • Can display the complete change log history
  • Uses a simple XML file as source
  • Supports partial translations
  • Easily extendable to use something other than a dialog

Repository at https://github.com/cketti/ckChangeLog.

Usage

  1. Create the master change log in res/xml/changelog_master.xml. Formatted like this:
<?xml version="1.0" encoding="utf-8"?>
<changelog>
    <release version="1.1" versioncode="11" >
        <change>Totally new and shiny version</change>
    </release>
    <release version="1.0" versioncode="10" >
        <change>Fixed: A bug fix</change>
        <change>Some other changes I can't quite remember</change>
    </release>
    <release version="0.1" versioncode="1">
        <change>First release</change>
    </release>
</changelog>
  1. Create translations of this changelog_master.xml file in files named changelog.xml under language-specific versions of res/xml/, e.g. res/xml-de/changelog.xml.

  2. Display the change log dialog by putting the following code in your activity's onCreate() method:

ChangeLog cl = new ChangeLog(this);
if (cl.isFirstRun()) {
    cl.getLogDialog().show();
}

Include the library

The easiest way to add ckChangeLog to your project is via Gradle. Just add the following lines to your build.gradle:

dependencies {
    compile 'de.cketti.library.changelog:ckchangelog:1.2.2'
}

To tell Gradle where to find the library, make sure build.gradle also contains this:

repositories {
    mavenCentral()
}

Customize labels

In order to change the labels of the dialog add the following items to your strings.xml:

  <string name="changelog_full_title">Change Log</string>
  <string name="changelog_title">What\'s New</string>
  <string name="changelog_ok_button">OK</string>
  <string name="changelog_show_full">More…</string>

Changelog

Version 1.2.2 (2015-01-09)

  • Added Ukrainian translation

Version 1.2.1

  • Add support for AboutLibraries
  • Fix build scripts so Javadoc JAR is properly created

Version 1.2.0

  • Made constant DEFAULT_CSS public
  • Changed internals to make it easier to read the change log from different sources
  • Added public method getChangeLog(boolean) that returns a list of ReleaseItems
  • Changed minSdkVersion to 4
  • Switched to Gradle as build system
  • Added Greek, Spanish, Polish, and Russian translation

Version 1.1.0

  • Added method skipLogDialog()
  • Added Slovak and German translation

Version 1.0.0

  • Breaking change! Moved master translation from res/raw/changelog.xml to res/xml/changelog_master.xml
  • Added German translation of the sample app

Version 0.1

  • Initial release

Acknowledgments

This library is based on:

Other contributors:

  • See here
  • You? Please create pull requests against the dev branch

License

Copyright (C) 2012-2015 cketti and contributors

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.
Comments
  • do not show changelog if user first time installing app

    do not show changelog if user first time installing app

    No point in showing changelog if user first time installing app. They don't need to know what's changed then and it's just another dialog they have to click through.

    I know you don't update this library anymore but that would be very nice thing to have.

    opened by Photogad 7
  • WebView Replaced with Sticky Header List View & Material Dialog

    WebView Replaced with Sticky Header List View & Material Dialog

    Hello cketti,

    I've modified the changelog library to use the MaterialDialog library, and switched the WebView out for a StickyHeaderListView (See the screenshot in my readme). You may want to modify some of my code to allow for customization (for example, being able to supply a custom sticky header view or a custom list item view).

    opened by ahornerr 7
  • Dialog won't load content and rapidly resizes

    Dialog won't load content and rapidly resizes

    When QAing this library we ran into a case where the change log dialog will not load the contents and constantly changes sizes. This does not happen every time or on every phone but some phones we tested with this is the behavior some of the time.

    We know it has something to do with the CSS being applied because when we comment out the CSS we cannot reproduce the issue. Also as you can see in the video it looks like the dialog renders properly for a split second after the dismiss button is clicked.

    Please see video of issue at: https://dl.dropboxusercontent.com/u/66318395/VisualGlitching.MOV

    opened by bdonahue 7
  • Add option for holo dark theme

    Add option for holo dark theme

    Currently, the WebView is displayed with white background and passing body { background-color: transparent; } doesn't seem to work.

    It would be nice if there would be a switch for light/dark.

    opened by grote 5
  • getLogDialog is blank

    getLogDialog is blank

    When trying to use getLogDialog() to show an abbreviated changelog, the dialog appears, but is blank. Clicking "More..." displays the full log.

    Here is my changelog_master.xml

    <changelog>
        <release version="1.1" versioncode="2" >
           <change>Added Ability to view Version History from the "About" screen.</change>
        </release>
        <release version="1.0" versioncode="1" >
            <change>Added Ability to check for and install updates</change>
        </release>
    </changelog>
    

    I'm updating from version "1.0" version code 1 to version "1.1" versioncode 2. The update works as expected, and the dialog is showing as it should be. I would expect it to show the release notes for version "1.1" versioncode 2 after an update.

    Thanks!

    opened by yax51 4
  • AlertDialog from support-v7 library

    AlertDialog from support-v7 library

    Are you planning to switch to the android.support.v7.app.AlertDialog which supports defining an accent color, including pre-Lollipop Android versions?

    You would need to replace the import for the AlertDialog and reference a style for it:

    AlertDialog.Builder builder = new AlertDialog.Builder(mContext, R.style.AppDialog);
    

    The styles.xml cool look like this:

    <style name="AppDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
        <item name="colorAccent">@color/accent</item>
    </style>
    
    opened by johnjohndoe 4
  • Library can't be imported into Android Studio

    Library can't be imported into Android Studio

    Error:No such property: nexusUsername for class: org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer

    Looks like android-mvn-push.gradle needs to be modified to provide some dummy default values for maven username and password. I can create a pull request if you don't mind.

    opened by denisk20 3
  • Android studio updates

    Android studio updates

    3 changes here:

    1. Made nexusUsername and nexusPassword properties optional since they are used for maven upload only.
    2. Moved some common code into newly-created parent gradle file.
    3. Updated tools versions to most recent ones.
    opened by denisk20 2
  • Dialogbuttons are disappearing

    Dialogbuttons are disappearing

    Everytime when the what's new dialog is displayed for the first time, the buttons "Ok" and "more" and the title are gone. If i tap on the positions where the buttons should be, they turn back visible.

    http://i.imgur.com/27GAL4f.png

    http://i.imgur.com/WV93orz.png

    Any idea what could cause this?

    opened by gnorbsl 2
  • Issue showing What's New Window

    Issue showing What's New Window

    I just followed the default sample, without customizations, and I've got the following results. The first view is empty but, when I click the option 'More...' it looks normal.

    It was tested using a Galaxy S4 phone.

    Any hints on how to fix it?

    Thanks!

    2014-11-23 02 56 51

    2014-11-23 02 56 59

    opened by epklein 2
  • Added method getLogArray to obtain an array of ReleaseItem.

    Added method getLogArray to obtain an array of ReleaseItem.

    Added a new public method, getLogArray(full), to obtain a SparseArray of ReleaseItem objects, having the versioncode as the key, and the ReleaseItem object as value, with the versionname, versioncode and list of changes. The new method uses the same code than getLog(full) to parse the chagelogs and merge localized and default xmls. Now getLog reuses this new method to avoid code duplicates.

    Modified class ReleaseItem to be public, and its properties encapsulated to be read-only.

    I did this to be able to access the list of changes in my app, because I wanted to show a custom card in the main screen with the latest changes. And I thought it would be a good idea to provide a way of accessing the raw list of changes instead of the html, so the developer can put them in a customized way. I still show the dialog when the user selects to do so, but I don't like modal dialogs being shown directly when the user opens the app.

    It's just an extra functionality to provide more flexibility, as I think this library is already great to manage list of changes on each new version. Hope you like it, merge if you find it useful :)

    opened by Sloy 2
  • Resizing on first run

    Resizing on first run

    After an update, when the changelog dialog appears, it is flickering for a few seconds then settles down. This only occurs on a small screen. https://www.dropbox.com/s/xj81xsalzso6nyy/version%20history%20first%20run.mp4?dl=0 Using Android 8.1.0. Device: Zebra MC330K Using Theme.AppCompat.DayNight.DarkActionBar in styles.xml

    Any ideas?

    opened by yax51 0
  • Resources$NotFoundException: String resource via ChangeLog.getDialog

    Resources$NotFoundException: String resource via ChangeLog.getDialog

    I noticed a few occurrences of the following error being reported in the Google Developer Console of my app. I am using version 1.2.2 of the library.

    I am able to reproduce the crash with an Android emulator API level 21, 5.0.2, Google APIs Intel x86 Atom_64 System Image, Revision 31.

    Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x2040002
        at android.content.res.Resources.getText(Resources.java:274)
        at android.content.res.Resources.getString(Resources.java:360)
        at com.android.org.chromium.content.browser.ContentViewCore.setContainerView(ContentViewCore.java:702)
        at com.android.org.chromium.content.browser.ContentViewCore.initialize(ContentViewCore.java:608)
        at com.android.org.chromium.android_webview.AwContents.createAndInitializeContentViewCore(AwContents.java:619)
        at com.android.org.chromium.android_webview.AwContents.setNewAwContents(AwContents.java:758)
        at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:608)
        at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:546)
        at com.android.webview.chromium.WebViewChromium.initForReal(WebViewChromium.java:312)
        at com.android.webview.chromium.WebViewChromium.access$100(WebViewChromium.java:97)
        at com.android.webview.chromium.WebViewChromium$1.run(WebViewChromium.java:264)
        at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.drainQueue(WebViewChromium.java:124)
        at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue$1.run(WebViewChromium.java:111)
        at com.android.org.chromium.base.ThreadUtils.runOnUiThread(ThreadUtils.java:144)
        at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.addTask(WebViewChromium.java:108)
        at com.android.webview.chromium.WebViewChromium.init(WebViewChromium.java:261)
        at android.webkit.WebView.<init>(WebView.java:548)
        at android.webkit.WebView.<init>(WebView.java:483)
        at android.webkit.WebView.<init>(WebView.java:466)
        at android.webkit.WebView.<init>(WebView.java:453)
        at android.webkit.WebView.<init>(WebView.java:443)
        at de.cketti.library.changelog.ChangeLog.getDialog(ChangeLog.java:287)
        at de.cketti.library.changelog.ChangeLog.getLogDialog(ChangeLog.java:265)
        at de.avpptr.umweltzone.base.BaseActivity.showChangeLogDialog(BaseActivity.java:174)
        at de.avpptr.umweltzone.map.MainActivity.onCreate(MainActivity.java:58)
        at android.app.Activity.performCreate(Activity.java:5937)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
        ... 10 more
    
    opened by johnjohndoe 8
  • New lint check MissingDefaultResource

    New lint check MissingDefaultResource

    With the introduction of the MissingDefaultResource ( http://tools.android.com/tips/lint-checks ), an error occurs if this library is used with changelog xml resources in several languages.

    bildschirmfoto 2018-11-04 um 17 09 11

    As a work around, one can create in res/xml a copy of the changelog_master.xml as a dummy with the name changelog.xml in order to avoid this lint error. Could we fix this also in the library logic?

    opened by jonzl 0
  • Quotations marks in text for a change

    Quotations marks in text for a change

    In the <change> tags, using quotation marks as " or escaped as \" or even as \u0022 does not show the symbol in the dialog, there is no character instead. In Android resources this works (e.g. in strings.xml). Single quotes ' even cause the whole text following to be removed.

    Using the actual characters „ “ ” ‚ ‘ ’ works, however.

    opened by felixwiemuth 4
  • mavenCentral not required

    mavenCentral not required

    It should not be necessary anymore to add mavenCentral() to the repositories in the build scripts as indicated in the Readme. AndroidStudio projects by default include jCenter() which replaces mavenCentral().

    opened by felixwiemuth 3
Releases(v1.2.2)
Owner
cketti
Open source developer, @k9mail maintainer
cketti
Simple View to change Brush Size, Alpha and Color

BrushView Simple View to change Brush Size, Alpha and Color Screenshots How to install In your build.gradle project allprojects { repositories {

Andres Ruiz 16 Jun 28, 2018
Android Library to display your changelog

ChangeLog Library ChangeLog Library provides an easy way to display a change log in your Android app. Travis master: Travis dev: Examples Sample appli

Gabriele Mariotti 861 Nov 11, 2022
Android library to display a list of items for pick one

PickerUI Android library to display a list of items for pick one with blur effect (if you wish). Support for Android 3.0 and up. It supports portrait

David Pizarro 630 Nov 19, 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
An Android custom view to display digits rendered as dots in a grid, with a style like a 1970s LED clock.

#DotMatrixView This is an Android library project providing a custom view that can display things on a grid of dots. When the displayed value changes,

Mark Roberts 48 Apr 21, 2022
Android App that communicates with a back-end server to display different One Piece characters

About This project is an Android App that communicates with a back-end server to display different One Piece characters. It's roughly based on this co

Sam Garcia 1 Feb 4, 2022
Implementation of the fragment with the ability to display indeterminate progress indicator when you are waiting for the initial data.

Android-ProgressFragment Implementation of the fragment with the ability to display indeterminate progress indicator when you are waiting for the init

Evgeny Shishkin 813 Nov 11, 2022
Display code with syntax highlighting :sparkles: in native way.

CodeView (Android) CodeView helps to show code content with syntax highlighting in native way. Description CodeView contains 3 core parts to implement

Kirill Biakov 827 Dec 22, 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
Android StackBlur is a library that can perform a blurry effect on a Bitmap based on a gradient or radius, and return the result. The library is based on the code of Mario Klingemann.

Android StackBlur Android StackBlur is a library that can perform a blurry effect on a Bitmap based on a gradient or radius, and return the result. Th

Enrique López Mañas 3.6k Dec 29, 2022
Android library providing bread crumbs to the support library fragments.

Hansel And Gretel Android library providing bread crumbs for compatibility fragments. Usage For a working implementation of this project see the sampl

Jake Wharton 163 Nov 25, 2022
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
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

Julián Suárez 520 Nov 11, 2022
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

Shashank Singhal 1.2k Dec 26, 2022
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 { ..

Shashank Singhal 350 Dec 9, 2022
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

Dionysis Lorentzos 2.3k Dec 9, 2022
A Material design Android pincode library. Supports Fingerprint.

LolliPin A Lollipop material design styled android pincode library (API 14+) To include in your project, add this to your build.gradle file: //Loll

Omada Health 1.6k Nov 25, 2022