diff options
author | Unpublished <unpublished@gmx.net> | 2021-01-20 12:49:28 +0300 |
---|---|---|
committer | Unpublished <unpublished@gmx.net> | 2021-01-20 12:50:06 +0300 |
commit | d62b56cc1c320517dbb6cc52c7ce6112fcb6e881 (patch) | |
tree | 285c572c70b25a55180e6e2ec5a71413d2f911db /News-Android-App/src/main/java | |
parent | de91f93cf3e9ceb630c1fb41d2992cf038270ebd (diff) |
Avoid leaking lazy list cursor
Signed-off-by: Unpublished <unpublished@gmx.net>
Diffstat (limited to 'News-Android-App/src/main/java')
2 files changed, 25 insertions, 25 deletions
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java index 86878af3..62ae7fc8 100644 --- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java +++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java @@ -38,6 +38,12 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ProgressBar; +import java.lang.ref.WeakReference; +import java.util.HashSet; +import java.util.Set; + +import javax.inject.Inject; + import androidx.appcompat.widget.AppCompatImageButton; import androidx.appcompat.widget.Toolbar; import androidx.fragment.app.Fragment; @@ -46,16 +52,9 @@ import androidx.fragment.app.FragmentPagerAdapter; import androidx.fragment.app.FragmentStatePagerAdapter; import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; - -import java.lang.ref.WeakReference; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import javax.inject.Inject; - import butterknife.BindView; import butterknife.ButterKnife; +import de.greenrobot.dao.query.LazyList; import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm; import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm.SORT_DIRECTION; import de.luhmer.owncloudnewsreader.database.model.RssItem; @@ -103,7 +102,7 @@ public class NewsDetailActivity extends PodcastFragmentActivity { private MenuItem menuItem_Read; private DatabaseConnectionOrm dbConn; - public List<RssItem> rssItems; + public LazyList<RssItem> rssItems; protected @Inject SharedPreferences mPrefs; @@ -180,7 +179,7 @@ public class NewsDetailActivity extends PodcastFragmentActivity { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - rssItems = dbConn.getCurrentRssItemView(-1); + rssItems = dbConn.getAllRssItems(); //If the Activity gets started from the Widget, read the item id and get the selected index in the cursor. if(intent.hasExtra(WidgetProvider.RSS_ITEM_ID)) { @@ -296,6 +295,7 @@ public class NewsDetailActivity extends PodcastFragmentActivity { @Override protected void onDestroy() { super.onDestroy(); + rssItems.close(); } private ViewPager.OnPageChangeListener onPageChangeListener = new ViewPager.OnPageChangeListener() { diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java index 987be4d1..12a36a22 100644 --- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java +++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java @@ -448,22 +448,22 @@ public class DatabaseConnectionOrm { } public List<RssItem> getCurrentRssItemView(int page) { - if(page != -1) { - String where_clause = ", " + CurrentRssItemViewDao.TABLENAME + " C " - + " WHERE C." + CurrentRssItemViewDao.Properties.RssItemId.columnName + " = T." - + RssItemDao.Properties.Id.columnName - + " AND C._id > " + page * PageSize + " AND c._id <= " + ((page+1) * PageSize) - + " ORDER BY C." + CurrentRssItemViewDao.Properties.Id.columnName; - - return daoSession.getRssItemDao().queryRaw(where_clause); - } else { - String where_clause = ", " + CurrentRssItemViewDao.TABLENAME + " C " - + " WHERE C." + CurrentRssItemViewDao.Properties.RssItemId.columnName + " = T." - + RssItemDao.Properties.Id.columnName - + " ORDER BY C." + CurrentRssItemViewDao.Properties.Id.columnName; + String where_clause = ", " + CurrentRssItemViewDao.TABLENAME + " C " + + " WHERE C." + CurrentRssItemViewDao.Properties.RssItemId.columnName + " = T." + + RssItemDao.Properties.Id.columnName + + " AND C._id > " + page * PageSize + " AND c._id <= " + ((page+1) * PageSize) + + " ORDER BY C." + CurrentRssItemViewDao.Properties.Id.columnName; - return daoSession.getRssItemDao().queryRawCreate(where_clause).listLazy(); - } + return daoSession.getRssItemDao().queryRaw(where_clause); + } + + public LazyList<RssItem> getAllRssItems() { + String where_clause = ", " + CurrentRssItemViewDao.TABLENAME + " C " + + " WHERE C." + CurrentRssItemViewDao.Properties.RssItemId.columnName + " = T." + + RssItemDao.Properties.Id.columnName + + " ORDER BY C." + CurrentRssItemViewDao.Properties.Id.columnName; + + return daoSession.getRssItemDao().queryRawCreate(where_clause).listLazy(); } /* |