mflisar / changelog Goto Github PK
View Code? Open in Web Editor NEWChangelog library - builder setup and advanced filtering
License: Apache License 2.0
Changelog library - builder setup and advanced filtering
License: Apache License 2.0
For instance, I've got 5 buttons on a view. Each button has it's own versionName. Whenever user clicks on a button, dialog pops up on a corresponding version, and only that version will be shown, not others.
Pardon me if I have misunderstood how your code works, but debugging into the source I have found this:
When an app is first installed and there is no local storage/cache, your function shouldShowChangelogOnStart will always return null, because the lastChangeLog variable was never set in SharedPreferences.
As a result, shouldShow always returns false in buildAndShowDialog, so the dialog never ever gets shown for the first time if you turn on the automatic management. If you set the management setting to false once, force the dialog to show, and then update the app version, the code seems to work as intended.
Could you please take a look at this?
Should look like following:
Some small other adjustments need to be done for sure as well...
My application has at least Java 7 but when I try to compile the APK it tells me that I have to have minimum Java (8).
Should be done in a way like the custom filter is supported: https://github.com/MFlisar/changelog/blob/master/lib/src/main/java/com/michaelflisar/changelog/classes/ChangelogFilter.java
IAutoVersionNameFormatter
small further adjustments may be necessary...
Hi!
I assume the feature would show the dialog only one time and never again.
In my situation, instead, the dialog isn't ever showed, and also the first time in the log appears "I/Changelog Library: Showing changelog dialog skipped".
How can I fix this?
Thanks
If there are no informations about a new version and the versioncode is incremented the changelog is shown but with zero information.
.withMinVersionToShow(120) //currently 123
.withManagedShowOnStart(true)
.withFilter(new ChangelogFilter(ChangelogFilter.Mode.Exact, BuildConfig.FLAVOR, true)) // this will filter out all tags, that do not have the provided filter attribute
Default renderer should be adjusted and layout should be a little beautified
My project leads don't want to migrate to AndroidX yet. So, is it possible to let people use either appCompat version or androidx? In buildAndShowDialog(appCompatActivity, false)?
This is more of a feature request.
It would be nice if i could add a customizable button to the changelog dialog. I do not like to bother users by having popups asking them to rate my app, so in the past i've typically added a rate button to my changelog area. Having the option to add an additional button would allow me to do that (assuming i could just pass in a click listener to handle the button press)
Adding support for something like CDATA within the new, info, etc. tags would make the library much easier to use!
I'm using
builder.buildAndShowDialog(AppCompatActivity, darkTheme);
and my application's style derives attributes from Theme.MaterialComponents.Light
instead of Theme.AppCompat.Light
as the library does, so the dialog buttons are styled/colored incorrectly. (Such as the "Ok" and "Rate" buttons).
In the lib source, I found the line:
dlg.setStyle(DialogFragment.STYLE_NORMAL, darkTheme ?
R.style.ChangelogDialogDarkTheme : R.style.ChangelogDialogLightTheme);
but defining my own in my styles.xml
doesn't change anything:
<style name="ChangelogDialogLightTheme" parent="@style/Theme.AppCompat.Light.Dialog">
<item name="android:dialogTheme">@style/Theme.MaterialComponents.Light.Dialog</item>
</style>
(Amongst other variations I've tried, using my own parent style, etc.)
Is this something that isn't possible with the DialogFragment, or am I doing something incorrectly?
Thanks.
Hey,
Thanks for this repo, very helpfull,
But I need the solution to be translatable...
It is possible?
Got a crash report of the following exception from a nexus 4 running 6.0.1. Apparently getSupportActionBar is null
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference
at com.michaelflisar.changelog.internal.ChangelogActivity.onCreate(ChangelogActivity.java:43)
at android.app.Activity.performCreate(Activity.java:6280)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2372)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2479)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1347)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5420)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
I would like a guide to be able to implement it this way, because the example I see in the /demo folder only shows how to open it in the form of Dialog, but not in full activity as seen in some screenshots. Could you help me, Mr. Developer?
.buildAndShowDialog(getActivity(), false);
is not working.
Wrong argument, found AppCompatActivity.
My app uses this library. While it works, I see a lot of noise in my Crashlytics logs in regards to this exception. More specifically, this is the exception:
Caused by java.lang.NullPointerException: Attempt to read from field 'java.lang.String f8.a.l' on a null object reference at com.michaelflisar.changelog.ChangelogBuilder.getCustomTitle(ChangelogBuilder.java:217) at com.michaelflisar.changelog.internal.ChangelogActivity.onCreate(ChangelogActivity.java:55) at android.app.Activity.performCreate(Activity.java:7009) at android.app.Activity.performCreate(Activity.java:7000) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) at android.app.ActivityThread.-wrap11() at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
I have not been able to find any solution, so I have simply wrapped my code in a try-catch
for now.
Like in object using builder.buildAndStartActivity rating and OK buttons dont show up in changelog, they work properly in builder.buildAndShowDialog.
Bug? or I made something wrong?
thats my code:
ChangelogBuilder builder = new ChangelogBuilder()
.withTitle("Note Aggiornamento")
.withRateButton(true)
.withRateButtonLabel("Votami")
.withOkButtonLabel("OK")
.withUseBulletList(true);
builder.buildAndShowDialog(this, true);
thanks
riccardo
Should support following setups:
A "show more" button should be shown for the other changelog entries
Idea: automatic summaries: info + new tags are shown and additionally an extendable "show bugfixes" button is shown
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.