Skip to content

Commit 6a5b772

Browse files
committed
docs: update for release
- Update README.md and CHANGELOG.md - Update About activity: - Improve display of 'what's new' info - Add thanks to the FreeDroidWarn project - Make sundry improvements in wording - Update fastlane info: - Add new fastlane changelog - Update full description - Update versionName in the build configuration
1 parent 47de27c commit 6a5b772

7 files changed

Lines changed: 240 additions & 69 deletions

File tree

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,36 @@ This project aims to adhere to [Semantic Versioning](https://server.org).
88

99
Regarding project commits: As of 2024-08-23, this project aims to adhere to the [Conventional Commits](https://www.conventionalcommits.org) standard. While the standard makes recommendations, it does not limit commit type or scope; consequently, neither type nor scope is limited to those recommendations in the project commits.
1010

11+
## [3.0.0] - 2026-02-28
12+
13+
### Added
14+
* A service that relays a custom intent to the widget(s) on receipt of Intent.ACTION_TIME_TICK from the Android system (which is sent by the system each minute), thereby initiating update of the widget(s) time display each minute and providing improved widget update reliability.
15+
* Relay service start on:
16+
* first widget addition to home screen.
17+
* on device boot if one or more widgets have already been added.
18+
* on main app start and widget settings start if one or more widgets have already been added to provide a simply way for the user to restart the service after updating the app or if the service has been otherwise stopped (e.g. by force stop of the app).
19+
* Relay service stop on last widget removal.
20+
* Independent selection of typeface between monospace, sans-serif, and serif of the main app's and each widget's time display.
21+
* The main app display also includes a 'device default' typeface option. The typeface for this selection is either hardcoded into the device or determined by the user's selection in system settings, depending on the device's particular Android implementation.
22+
* Disabling of the clock display alignment preference and forcing 'Align to Center' on selection of sans-serif or serif typeface since non-monospace typefaces don't properly align the time display when using 'Align to Divider'.
23+
* Display after install or upgrade of a simple dialog on start of either the main or widget settings activity asking the user whether to show what's new in the latest version. The About activity, containing the "what's new" info above the fold, is started on clicking 'Yes'; clicking either 'Yes' or 'No' updates a preference that prevents the dialog's display until the next upgrade.
24+
* Initially-collapsed text blocks in the About activity with expand/collapse functionality that contain sizable chunks of license info.
25+
26+
### Added (Technical)
27+
* Internal support facilitating future addition of new fonts for display by the main app clock. See commits f255f747 and d850fffb for particular points relating to adding new fonts.
28+
* A main app toolbar menu button (R.id.item_reset_setting) that is only enabled and visible if `BuildConfig.DEBUG` is true; the button can be used to, for example, reset one or more preferences during debugging by providing code in the toolbar's `onMenuItemClick` handler.
29+
* TextViewEC, a simple, reusable custom view extended from AppCompatTextView that provides the expand/collapse functionality in the About activity. It automatically stores its state in SharedPreferences private to the activity in which it is used, with a preference key equal to the id name specified in the activity's layout. It has one custom boolean attribute, initCollapsed, for specifying its initial state.
30+
31+
### Changed
32+
* Target and compile SDK from 34 to 35.
33+
* Java source and target compatibility from 8 to 21.
34+
35+
### Fixed
36+
* Various UI/UX issues.
37+
38+
### Removed
39+
* Less reliable updating of widget time displays by setting of successive exact alarms that deliver a custom intent to the widget(s) each minute to thereby initiate update.
40+
1141
## [2.2.2] - 2025-12-14
1242

1343
### Reverted

README.md

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ a current phone or tablet.
2525

2626
![Landscape screenshot of phone showing RomanDigital app displaying time as VIII:LVII](/.github/images/Screenshot_20240809_205721_RomanDigital.png)
2727

28-
Further, RomanDigital includes a widget that can be added to a device's Home screen.
28+
RomanDigital also includes a widget that can be added to a device's Home screen.
2929

3030
![Portion of a portrait screenshot of a phone Home page showing RomanDigital widget displaying time as XVII:XV, the screenshot portion having a torn-paper-effect bottom edge](/.github/images/Torn_Screenshot_20240913_171548_One_UI_Home.png)
3131

@@ -54,7 +54,9 @@ RomanDigital further includes:
5454

5555
![Portrait screenshot of phone cropped to show a Time Color dialog enabling setting of app display color by 6-character hex code or by setting red, green, and blue sliders, and including a clock display preview](/.github/images/Screenshot_20250603_104752_RomanDigital.jpg)
5656

57-
* A widget for providing a Roman digital clock display on a device's Home screen, with display text automatically sized to fit the widget's dimensions:
57+
* Choice of clock display typefaces between monospace, sans-serif, and serif.
58+
59+
* The widget provides a Roman digital clock display on a device's Home screen, with display text automatically sized to fit the widget's dimensions (sizing improved in Version 3.0.0):
5860

5961
![Portrait screenshot of phone Home screen showing RomanDigital widget](/.github/images/Screenshot_20240910_174429_One_UI_Home_scaled.jpg)
6062

@@ -78,18 +80,11 @@ in the normal manner for the particular Android version.
7880

7981
## Permissions
8082

81-
The USE_EXACT_ALARM permission is set by this app. This permission is
82-
necessary on Android 13 and greater to enable the widget to provide an
83-
accurate time display without inconveniencing the user by asking for the permission.
84-
It cannot be disabled without modifying the source code.
83+
The FOREGROUND_SERVICE and FOREGROUND_SERVICE_SPECIAL_USE permissions are set by this app. These permissions are required to enable running the TimeTickRelay foreground service that prompts the widgets to update each minute in response to receipt of Android's ACTION_TIME_TICK intent, which the widgets are unable to receive directly.
8584

86-
The SCHEDULE_EXACT_ALARM permission is also set by this app and is
87-
necessary on Android 12 for the same reason as the USE_EXACT_ALARM
88-
permission discussed above. This permission can be disabled in the
89-
_Alarms & Reminders_ section of the system settings. Disabling this
90-
permission will cause inaccuracy in the widget's time display.
85+
The POST_NOTIFICATIONS permission is set by this app. This permission is necessary for Android 13 and later to allow the TimeTickRelay service to display a notification indicating that it is running if the user so chooses in the system settings; unless the user so chooses, the notification will not be displayed on these Android versions.
9186

92-
Android versions 11 and lower allow setting of exact alarms by default.
87+
The RECEIVE_BOOT_COMPLETED permission is set by this app. This permission is necessary for the app to restart the service on receipt of notification that the device has just finished booting.
9388

9489
In addition, net.diffengine.romandigitalclock.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
9590
is set by this app. This was set during the app build process by use of a particular Android
@@ -101,47 +96,47 @@ https://gitlab.com/fdroid/fdroidserver/-/merge_requests/1336/diffs?commit_id=716
10196

10297
## Known Issues
10398

104-
As widget updating is currently implemented, text of a widget rotated between portrait and landscape may not be automatically resized until the next widget update, which may be up to a minute after the rotation. This is not an issue for devices that do not support home screen rotation or that are set not to rotate the home screen. It is also not an issue for any device having a UI/launcher rendering the device's home screen on which the widget is installed that notifies widgets when the device is rotated (e.g. Samsung One UI 6.1 and 7.0).
99+
Widgets will likely stop running after an update because the update stops the TimeTickRelay service (see Permissions above). They can be restarted easily by just opening the main app or any widget settings activity, which may be closed at any time thereafter.
105100

106-
After building and updating the app in Android Studio, a widget that had previously been added to the home screen may stop updating. It may be 'kickstarted' by simply opening and then closing the widget's settings screen.
101+
After rebooting a device, the widget(s) will not start running until the app finishes restarting the relay service and then receives an ACTION_TIME_TICK from the system, which may be a couple of minutes. This delay is normal.
107102

108-
The 'Align to Divider' option does not correctly align the display when a variable width font is used.
103+
Text of a widget rotated between portrait and landscape may not be incorrectly sized until the next widget update, which may be up to a minute after the rotation. This is not an issue for devices that do not support home screen rotation or that are set not to rotate the home screen. It is also not an issue for any device having a UI/launcher rendering the device's home screen on which the widget is installed that notifies widgets when the device is rotated (e.g. Samsung One UI 6.1 and 7.0).
109104

110-
The RomanDigital app will run on a 5th Generation Amazon Kindle Fire, which is based on Android 5.1, but the widget will not. RomanDigital has not been tested on other Fire versions.
105+
Also, text of a widget may appear incorrectly sized until the next widget update if a widget's settings screen is open while the device is rotated and closed after rotation.
106+
107+
On Android 5.0, the widget(s) typeface cannot be changed.
108+
109+
The 'Align to Divider' option does not correctly align the display when a variable width font is used.
111110

112111
## FAQ (Foremost Anticipated Questions)
113112

114-
> Q: "I just updated RomanDigital / updated Android / restarted my device, and now the widget doesn't work! How do I get it running again?"
113+
> Q: "I just updated RomanDigital and now the widget doesn't work! How do I get it running again?"
115114
>
116-
> A: As of version 2.0.1, this should only happen when running RomanDigital on a device through Android Studio. The workaround to get the widget going again is to "kickstart" it by simply opening and then canceling a settings screen from any widget or from the app.
115+
> A: Open the main app or any widget settings activity to restart the relay service and thereby restart the widgets.
117116
118117
> Q: "Why does the position of the divider change when 'Align to Divider' is selected? Isn't it supposed to stay in one place?"
119118
>
120119
> A: Yes, it's supposed to stay in one place, but the positioning was designed with the expectation of using a monospace font. Shortsighted of me, I know, but implementation for variable width fonts would be _really hard_. If you've changed a device setting effecting the font used, e.g. your system-wide font, to something that doesn't provide for monospace, then the calculated display position based on expected equal-width characters, and thus the divider position, will unfortunately be off.
121120
122-
> Q: "There's no alarm feature, so why the need to set exact alarms? What's this got to do with an accurate time display?"
123-
>
124-
> A: Android doesn't enable widgets to receive the ACTION_TIME_TICK intent broadcast through the system each minute. Setting an alarm for the exact time of each next minute at the end of a minute is the only straightforward way (that I know of) for the app's widget to know when to update the time display.
125-
126121
> Q: "Will there ever be an alarm feature?"
127122
>
128123
> A: Maybe, but it's quite low on the priority list at this point.
129124
130125
> Q: "Why can't I change the font/text color/background color/widget corner curvature/etc?"
131126
>
132-
> A: App text color can now be changed, as noted in the **Features** above. Also, background _transparency_ can be changed, with background fully white/black for 100% opacity in light/dark mode. As for other stylistic changes, I haven't gotten to them yet.
127+
> A: App text color can be changed; widget background _transparency_ can be changed, with background fully white/black for 100% opacity in light/dark mode; and both app and widget(s) clock display typeface can be changed. As for other stylistic changes, I haven't gotten to them yet.
133128
134129
> Q: "Why no seconds?"
135130
>
136131
> A: They would crowd the display and look inelegant. Besides, most people (myself included) would likely have trouble reading a lengthy Roman numeral within a second.
137132
138133
> Q: "Why no date?"
139134
>
140-
> A: Because it's just a simple clock. At least for now.
135+
> A: Because it's just intended to be a clock, and a date would crowd the display and look inelegant. But maybe an option someday? Maybe.
141136
142137
> Q: "I want to change widget time zone labels to particular place names. Is there any way to do this?"
143138
>
144-
> A: Not right now, but it should be added pretty soon since I want that option myself and it should be easy to implement.
139+
> A: Not right now, but it should be added at some point since I'd like having that option myself and it should be easy to implement.
145140
146141
> Q: "Can I put the widget on my phone's lock screen?"
147142
>
@@ -152,7 +147,7 @@ The RomanDigital app will run on a 5th Generation Amazon Kindle Fire, which is b
152147
> Note:
153148
>
154149
> * I get nothing if you click on the "Lock Screen Widgets and Drawer" link and/or buy the app, and my purchase and use of it are not meant as an endorsement. There may be other such apps that would work as well or better.
155-
> * This doesn't work so well after my Galaxy A14 was updated from Android 14 to 15 and from One UI 6.1 to 7.0. The power management of Android 15 is understood to be more aggressive and apparently stops apps, including the widget on the lock screen, after a much shorter period when the phone is locked. :slightly_frowning_face:
150+
> * This didn't work so well with RomanDigital 2.x on Android 15 and its more aggressive power management :slightly_frowning_face: But with RomanDigital 3.0.0's overhauled widget updating code, it works great. :slightly_smiling_face:
156151
157152
> Q: "Why no version specifically for a watch?"
158153
>

app/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ android {
1313
//noinspection OldTargetApi
1414
targetSdk = 35
1515
versionCode = 15
16-
versionName = "3.0.0 Pre-Release"
16+
versionName = "3.0.0"
1717

1818
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
1919
}

0 commit comments

Comments
 (0)