Skip to content

Releases: xRahul/materialisheep

Release v3.4.13

31 Jan 03:12
c3224de

Choose a tag to compare

Implement correct landscape behavior for getScrollableList in BaseLis…

Release v3.4.12

26 Jan 17:48
979b8fe

Choose a tag to compare

Potential fix for code scanning alert no. 1: Workflow does not contai…

Release v3.4.11

26 Jan 07:18
e46da10

Choose a tag to compare

Fix build warnings and errors in main source (#69)

* Fix build warnings and errors

- Suppress DefaultUncaughtExceptionDelegation in MaterialisticApplication with comment explaining custom crash handling strategy.
- Replace @TargetApi with @RequiresApi in WidgetHelper to fix lint warning.
- Suppress SetJavaScriptEnabled in WebFragment with comment explaining browser functionality requirement.
- Remove redundant @RequiresApi from ItemSyncNetworkCallback (minSdk 30).
- Rename mipmap-anydpi-v26 to mipmap-anydpi and remove redundant PNG launcher icons to fix ObsoleteSdkInt and IconXmlAndPng warnings.
- Remove tools:targetApi from shortcuts.xml.
- Extract hardcoded "Crash Report" string to strings.xml.
- Fix deprecation in ThemedActivity (TaskDescription) by using suppression for legacy path.
- Fix deprecation in NavFloatingActionButton (Vibrator) by implementing VibratorManager for API 31+ and suppressing legacy path.

* Fix remaining build and test warnings

- Suppress unchecked cast warning in ItemActivity.java
- Replace deprecated MockitoAnnotations.initMocks with openMocks in SubmitActivityTest.java
- Suppress deprecation warnings in AppUtilsTest.java and SyncDelegateTest.java for legacy API simulation in tests

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>

Release v3.4.10

26 Jan 03:45
6311c3a

Choose a tag to compare

Fix LinkMovementMethod consuming touches in AppUtils (#55)

Replaces the anonymous OnTouchListener with a robust LinkTouchListener
class. This custom listener:
1. Fixes the issue where LinkMovementMethod swallows all touch events.
2. Fixes "ghost links" by checking touch coordinates against line bounds.
3. Adds visual feedback (highlighting) when pressing links.
4. Allows overriding specific link clicks (used for URLSpan in AppUtils).

Tests added in LinkTouchListenerTest.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>

Release v3.4.9

25 Jan 04:48
cc7a864

Choose a tag to compare

Fix widget item clicks not working by using Mutable PendingIntent (#50)

App Widget collection items require a mutable `PendingIntentTemplate` to allow `fillInIntent` from `RemoteViewsService` to populate the intent with item-specific data (e.g., the story ID).

Previously, `PendingIntent.FLAG_IMMUTABLE` was used (likely to satisfy Android 12 requirements blindly), which prevented the system from merging the `fillInIntent` into the template, causing clicks to be ignored or launch empty intents.

This change:
1. Updates `refreshApi31` to use `PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT` for the template.
2. Updates `updateCollection` (used for all versions) to conditionally use `PendingIntent.FLAG_MUTABLE` on API 31+ and `PendingIntent.FLAG_UPDATE_CURRENT` on older versions.

This restores the ability to open stories directly from the widget.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>

Release v3.4.8

25 Jan 02:39
e794d42

Choose a tag to compare

Fix widget and notification intents triggering system chooser (#49)

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>

Release v3.4.7

24 Jan 18:37
025090d

Choose a tag to compare

Refactor SyncDelegate to use RxJava instead of blocking execute() (#48)

Replaced blocking `cachedItem().execute()` and `networkItem().execute()` calls in `SyncDelegate` with their RxJava counterparts (`cachedItemRx` and `networkItemRx`). This ensures that I/O operations are handled in a non-blocking, reactive manner, which is more robust and aligns with the project's architecture.

* Enabled Rx support in `SyncDelegate` by calling `factory.rxEnabled(true)`.
* Replaced `sync(String)` with `syncRx(String)` which returns an `Observable`.
* Updated `performSync` to subscribe to `syncRx` on the IO scheduler.
* Refactored `syncDeferredItems` logic to use `Observable.concatMap` for sequential processing of deferred items.
* Removed unused `sync(String)`, `getFromCache`, and `syncDeferredItems` methods.
* Updated `SyncDelegateTest` to verify Rx calls.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>

Release v3.4.6

24 Jan 18:17
cda7b98

Choose a tag to compare

Readability.js: Consider original content score in conditional cleani…

Release v3.4.5

24 Jan 09:39
8531eba

Choose a tag to compare

Refactor StoryListViewModel and fix swallowed exceptions in clients (…

Release v3.4.4

24 Jan 05:20
cc1e02c

Choose a tag to compare

Fix deprecated APIs and performance issues (Suggestions Beta1) (#14)

* Address multiple deprecations and performance issues

Refactor several classes to address Android lint warnings and performance suggestions:
- Remove deprecated `shouldInterceptRequest` in `AdBlockWebViewClient`.
- Use `TaskDescription.Builder` in `ThemedActivity` for API 28+.
- Optimize `FavoriteManager` to cache cursor column indices.
- Compile regex patterns in `UserServicesClient` to avoid repeated compilation.
- Replace `Fragment.instantiate` with constructor in `PreferencesActivity`.
- Fix N+1 network requests in `WidgetService` by pre-fetching items in `onDataSetChanged`.
- Use `NotificationCompat.Builder` with channel ID in `SyncDelegate`.
- Replace deprecated `android.R.string.yes/no` with local resources in `ComposeActivity`.

* Fix deprecated APIs and build issues

- Update `ThemedActivity` to use `TaskDescription.Builder` only on API 33+ (Tiramisu), fixing a NewApi lint error.
- Remove deprecated `shouldInterceptRequest` in `AdBlockWebViewClient`.
- Optimize `FavoriteManager` to cache cursor column indices.
- Compile regex patterns in `UserServicesClient`.
- Replace `Fragment.instantiate` in `PreferencesActivity`.
- Fix N+1 network requests in `WidgetService`.
- Unified `NotificationCompat.Builder` usage in `SyncDelegate`.
- Use local string resources in `ComposeActivity`.

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>