diff options
author | David Luhmer <david-dev@live.de> | 2021-01-26 17:32:44 +0300 |
---|---|---|
committer | David Luhmer <david-dev@live.de> | 2021-01-26 17:32:44 +0300 |
commit | a7519b19bd5b2681a29e53eecaec44a77f02428a (patch) | |
tree | 1caf76cc702617815be3264032aadd73b9410e10 /News-Android-App/src/main/java | |
parent | b449af345ba2dcded368fa028d9c1bfb43dc72df (diff) | |
parent | 3f1a84dde01ed03acdfcb4e7d7af0e80a8341690 (diff) |
Merge branch 'master' into use-viewbinding
# Conflicts:
# News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java
Diffstat (limited to 'News-Android-App/src/main/java')
2 files changed, 66 insertions, 54 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 16859f1c..86878af3 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 @@ -36,7 +36,10 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.widget.ProgressBar; +import androidx.appcompat.widget.AppCompatImageButton; +import androidx.appcompat.widget.Toolbar; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentPagerAdapter; @@ -51,14 +54,14 @@ import java.util.Set; import javax.inject.Inject; +import butterknife.BindView; +import butterknife.ButterKnife; import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm; import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm.SORT_DIRECTION; import de.luhmer.owncloudnewsreader.database.model.RssItem; -import de.luhmer.owncloudnewsreader.databinding.ActivityNewsDetailBinding; import de.luhmer.owncloudnewsreader.helper.ThemeUtils; import de.luhmer.owncloudnewsreader.model.PodcastItem; import de.luhmer.owncloudnewsreader.model.TTSItem; -import de.luhmer.owncloudnewsreader.view.PodcastSlidingUpPanelLayout; import de.luhmer.owncloudnewsreader.widget.WidgetProvider; @@ -76,7 +79,18 @@ public class NewsDetailActivity extends PodcastFragmentActivity { * {@link FragmentStatePagerAdapter}. */ private SectionsPagerAdapter mSectionsPagerAdapter; - protected ActivityNewsDetailBinding binding; + protected @BindView(R.id.toolbar) Toolbar toolbar; + // protected @BindView(R.id.bottomAppBar) BottomAppBar bottomAppBar; + protected @BindView(R.id.progressIndicator) ProgressBar progressIndicator; + //protected @BindView(R.id.btn_disable_incognito) ImageButton mBtnDisableIncognito; + protected @BindView(R.id.fa_detail_bar) View fastActionDetailBar; + protected @BindView(R.id.fa_collapse_layout) View fastActionCollapseLayout; + protected @BindView(R.id.fa_star) AppCompatImageButton fastActionStar; + protected @BindView(R.id.fa_mark_as_read) AppCompatImageButton fastActionRead; + protected @BindView(R.id.fa_toggle) AppCompatImageButton fastActionToggle; + protected @BindView(R.id.fa_open_in_browser) AppCompatImageButton fastActionOpenInBrowser; + protected @BindView(R.id.fa_share) AppCompatImageButton fastActionShare; + /** * The {@link ViewPager} that will host the section contents. @@ -102,9 +116,6 @@ public class NewsDetailActivity extends PodcastFragmentActivity { super.onCreate(savedInstanceState); - binding = ActivityNewsDetailBinding.inflate(getLayoutInflater()); - setContentView(binding.getRoot()); - /* //make full transparent statusBar if (Build.VERSION.SDK_INT >= 19 && Build.VERSION.SDK_INT < 21) { @@ -133,6 +144,10 @@ public class NewsDetailActivity extends PodcastFragmentActivity { } */ + + + setContentView(R.layout.activity_news_detail); + /* // For Debugging the WebView using Chrome Remote Debugging if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { @@ -140,8 +155,10 @@ public class NewsDetailActivity extends PodcastFragmentActivity { } */ - if (binding.toolbarLayout.toolbar != null) { - setSupportActionBar(binding.toolbarLayout.toolbar); + ButterKnife.bind(this); + + if (toolbar != null) { + setSupportActionBar(toolbar); } /* if (bottomAppBar != null) { @@ -183,7 +200,7 @@ public class NewsDetailActivity extends PodcastFragmentActivity { // primary sections of the app. mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); - binding.progressIndicator.setMax(mSectionsPagerAdapter.getCount()); + progressIndicator.setMax(mSectionsPagerAdapter.getCount()); // Set up the ViewPager with the sections adapter. mViewPager = findViewById(R.id.pager); @@ -215,12 +232,7 @@ public class NewsDetailActivity extends PodcastFragmentActivity { updateActionBarIcons(); } - @Override - protected PodcastSlidingUpPanelLayout getPodcastSlidingUpPanelLayout() { - return binding.slidingLayout; - } - - /** + /** * Init fast action bar based on user settings. * Only show if user selected setting CB_SHOW_FAST_ACTIONS. Otherwise hide. * @@ -231,18 +243,18 @@ public class NewsDetailActivity extends PodcastFragmentActivity { if (mShowFastActions) { // Set click listener for buttons on action bar - binding.faDetailBar.faOpenInBrowser.setOnClickListener(v -> this.openInBrowser(currentPosition)); - binding.faDetailBar.faToggle.setOnClickListener(v -> this.toggleFastActionBar()); // toggle expand / collapse - binding.faDetailBar.faStar.setOnClickListener(v -> NewsDetailActivity.this.toggleRssItemStarredState()); - binding.faDetailBar.faMarkAsRead.setOnClickListener(v -> NewsDetailActivity.this.markRead(currentPosition)); - binding.faDetailBar.faShare.setOnClickListener(v -> this.share(currentPosition)); + fastActionOpenInBrowser.setOnClickListener(v -> this.openInBrowser(currentPosition)); + fastActionToggle.setOnClickListener(v -> this.toggleFastActionBar()); // toggle expand / collapse + fastActionStar.setOnClickListener(v -> NewsDetailActivity.this.toggleRssItemStarredState()); + fastActionRead.setOnClickListener(v -> NewsDetailActivity.this.markRead(currentPosition)); + fastActionShare.setOnClickListener(v -> this.share(currentPosition)); - binding.faDetailBar.getRoot().setVisibility(View.VISIBLE); + fastActionDetailBar.setVisibility(View.VISIBLE); // initially the bar should be opened in the expanded state this.toggleFastActionBar(); } else { - binding.faDetailBar.getRoot().setVisibility(View.INVISIBLE); + fastActionDetailBar.setVisibility(View.INVISIBLE); } } @@ -250,21 +262,21 @@ public class NewsDetailActivity extends PodcastFragmentActivity { * Expands or shrinks the fast action bar to show/hide secondary functions */ private void toggleFastActionBar() { - int currentState = binding.faDetailBar.faCollapseLayout.getVisibility(); + int currentState = fastActionCollapseLayout.getVisibility(); switch (currentState) { case View.GONE: - binding.faDetailBar.faToggle.setImageResource(R.drawable.ic_fa_expand); - binding.faDetailBar.faCollapseLayout.setVisibility(View.VISIBLE); + fastActionToggle.setImageResource(R.drawable.ic_fa_expand); + fastActionCollapseLayout.setVisibility(View.VISIBLE); break; case View.VISIBLE: - binding.faDetailBar.faToggle.setImageResource(R.drawable.ic_fa_shrink); - binding.faDetailBar.faCollapseLayout.setVisibility(View.GONE); + fastActionToggle.setImageResource(R.drawable.ic_fa_shrink); + fastActionCollapseLayout.setVisibility(View.GONE); break; default: break; } //((Animatable)fastActionToggle.getDrawable()).start(); - binding.faDetailBar.faToggle.setScaleX(-1); + fastActionToggle.setScaleX(-1); } private void toggleIncognitoMode() { @@ -357,7 +369,7 @@ public class NewsDetailActivity extends PodcastFragmentActivity { stopVideoOnCurrentPage(); currentPosition = position; resumeVideoPlayersOnCurrentPage(); - binding.progressIndicator.setProgress(position + 1); + progressIndicator.setProgress(position + 1); if(rssItems.get(position).getFeed() != null) { // Try getting the feed title and use it for the action bar title @@ -417,10 +429,10 @@ public class NewsDetailActivity extends PodcastFragmentActivity { if(menuItem_Starred != null) { if (isStarred) { menuItem_Starred.setIcon(R.drawable.ic_action_star_dark); - binding.faDetailBar.faStar.setImageResource(R.drawable.ic_action_star_dark); + fastActionStar.setImageResource(R.drawable.ic_action_star_dark); } else { menuItem_Starred.setIcon(R.drawable.ic_action_star_border_dark); - binding.faDetailBar.faStar.setImageResource(R.drawable.ic_action_star_border_dark); + fastActionStar.setImageResource(R.drawable.ic_action_star_border_dark); } } @@ -428,11 +440,11 @@ public class NewsDetailActivity extends PodcastFragmentActivity { if (isRead) { menuItem_Read.setIcon(R.drawable.ic_check_box_white); menuItem_Read.setChecked(true); - binding.faDetailBar.faMarkAsRead.setImageResource(R.drawable.ic_check_box_white); + fastActionRead.setImageResource(R.drawable.ic_check_box_white); } else { menuItem_Read.setIcon(R.drawable.ic_check_box_outline_blank_white); menuItem_Read.setChecked(false); - binding.faDetailBar.faMarkAsRead.setImageResource(R.drawable.ic_check_box_outline_blank_white); + fastActionRead.setImageResource(R.drawable.ic_check_box_outline_blank_white); } } } @@ -540,8 +552,8 @@ public class NewsDetailActivity extends PodcastFragmentActivity { NewsDetailFragment newsDetailFragment = getNewsDetailFragmentAtPosition(currentPosition); String link = "about:blank"; - if(newsDetailFragment != null && newsDetailFragment.binding.webview != null) { - link = newsDetailFragment.binding.webview.getUrl(); + if(newsDetailFragment != null && newsDetailFragment.mWebView != null) { + link = newsDetailFragment.mWebView.getUrl(); } if("about:blank".equals(link)) { @@ -566,9 +578,9 @@ public class NewsDetailActivity extends PodcastFragmentActivity { NewsDetailFragment fragment = getNewsDetailFragmentAtPosition(currentPosition); if(fragment != null) { // could be null if not instantiated yet - if(!fragment.binding.webview.getUrl().equals("about:blank") && !fragment.binding.webview.getUrl().trim().equals("")) { - content = fragment.binding.webview.getUrl(); - title = fragment.binding.webview.getTitle(); + if(!fragment.mWebView.getUrl().equals("about:blank") && !fragment.mWebView.getUrl().trim().equals("")) { + content = fragment.mWebView.getUrl(); + title = fragment.mWebView.getTitle(); } } @@ -655,7 +667,7 @@ public class NewsDetailActivity extends PodcastFragmentActivity { public void initIncognitoMode() { int color = getResources().getColor(isIncognitoEnabled() ? R.color.material_grey_900 : R.color.colorPrimary); - ThemeUtils.colorizeToolbar(binding.toolbarLayout.toolbar, color); + ThemeUtils.colorizeToolbar(toolbar, color); //ThemeUtils.colorizeToolbar(bottomAppBar, color); //ThemeUtils.changeStatusBarColor(this, color); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 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(); } /* |