Skip to content

Commit

Permalink
[Fix] Memory leak on RssItemSV
Browse files Browse the repository at this point in the history
  • Loading branch information
rh-id committed Aug 22, 2022
1 parent a78a0f3 commit 4e002b8
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ public class Routes {
public static final String HOME_PAGE = "/";
public static final String SETTINGS_PAGE = "/settings";
public static final String DONATIONS_PAGE = "/donations";
public static final String RSS_ITEM_DETAIL_PAGE = "/rss/item/detail";

private Routes(){}
private Routes() {
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import m.co.rh.id.a_news_provider.app.provider.notifier.RssChangeNotifier;
import m.co.rh.id.a_news_provider.app.provider.parser.OpmlParser;
import m.co.rh.id.a_news_provider.app.ui.page.DonationsPage;
import m.co.rh.id.a_news_provider.app.ui.page.RssItemDetailPage;
import m.co.rh.id.a_news_provider.app.ui.page.SettingsPage;
import m.co.rh.id.a_news_provider.app.ui.page.SplashPage;
import m.co.rh.id.a_news_provider.base.provider.BaseProviderModule;
Expand Down Expand Up @@ -71,6 +72,7 @@ private Navigator getNavigator(Provider provider) {
});
navMap.put(Routes.SETTINGS_PAGE, (args, activity) -> new SettingsPage());
navMap.put(Routes.DONATIONS_PAGE, (args, activity) -> new DonationsPage());
navMap.put(Routes.RSS_ITEM_DETAIL_PAGE, (args, activity) -> new RssItemDetailPage());
NavConfiguration.Builder<Activity, StatefulView> navBuilder =
new NavConfiguration.Builder<>(Routes.HOME_PAGE, navMap);
navBuilder.setRequiredComponent(provider);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,12 @@
import co.rh.id.lib.rx3_utils.subject.SerialBehaviorSubject;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import m.co.rh.id.a_news_provider.R;
import m.co.rh.id.a_news_provider.app.constants.Routes;
import m.co.rh.id.a_news_provider.app.provider.StatefulViewProvider;
import m.co.rh.id.a_news_provider.app.provider.command.RssQueryCmd;
import m.co.rh.id.a_news_provider.app.provider.notifier.RssChangeNotifier;
import m.co.rh.id.a_news_provider.app.rx.RxDisposer;
import m.co.rh.id.a_news_provider.app.ui.page.RssItemDetailPage;
import m.co.rh.id.a_news_provider.base.entity.RssItem;
import m.co.rh.id.alogger.ILogger;
import m.co.rh.id.anavigator.RouteOptions;
Expand All @@ -44,6 +46,7 @@ public class RssItemSV extends StatefulView<Activity> implements RequireNavigato

private SerialBehaviorSubject<RssItem> mRssItemSubject;
private transient Runnable mGetRssChannelByIdAndOpenDetail;
private transient RouteOptions mGetRssChannelByIdAndOpenDetail_routeOptions;

private DateFormat mDateFormat;

Expand All @@ -66,6 +69,12 @@ public void provideComponent(Provider provider) {
if (mRssItemSubject == null) {
mRssItemSubject = new SerialBehaviorSubject<>(new RssItem());
}
mGetRssChannelByIdAndOpenDetail_routeOptions = RouteOptions.withAnimation(
R.anim.slide_in_right,
R.anim.slide_out_left,
null,
android.R.anim.slide_out_right
);
mGetRssChannelByIdAndOpenDetail = () -> {
RssItem rssItem = mRssItemSubject.getValue();
mRxDisposer
Expand All @@ -77,14 +86,9 @@ public void provideComponent(Provider provider) {
mSvProvider.get(ILogger.class)
.e(TAG, throwable.getMessage(), throwable);
} else {
mNavigator.push((args, activity1) -> new RssItemDetailPage(),
mNavigator.push(Routes.RSS_ITEM_DETAIL_PAGE,
RssItemDetailPage.Args.withRss(rssItem, rssChannel), null
, RouteOptions.withAnimation(
R.anim.slide_in_right,
R.anim.slide_out_left,
null,
android.R.anim.slide_out_right
));
, mGetRssChannelByIdAndOpenDetail_routeOptions);
}
})
);
Expand Down Expand Up @@ -140,6 +144,7 @@ public void dispose(Activity activity) {
mSvProvider = null;
}
mGetRssChannelByIdAndOpenDetail = null;
mGetRssChannelByIdAndOpenDetail_routeOptions = null;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package m.co.rh.id.a_news_provider.app.ui.component.rss;
package m.co.rh.id.a_news_provider.app.ui.page;

import android.Manifest;
import android.app.Activity;
Expand Down Expand Up @@ -37,6 +37,7 @@
import m.co.rh.id.a_news_provider.app.provider.StatefulViewProvider;
import m.co.rh.id.a_news_provider.app.provider.command.RssQueryCmd;
import m.co.rh.id.a_news_provider.app.ui.component.AppBarSV;
import m.co.rh.id.a_news_provider.app.ui.component.rss.EditRssLinkSVDialog;
import m.co.rh.id.a_news_provider.app.util.UiUtils;
import m.co.rh.id.a_news_provider.base.AppSharedPreferences;
import m.co.rh.id.a_news_provider.base.entity.RssChannel;
Expand Down

0 comments on commit 4e002b8

Please sign in to comment.