Migrated CategoryDetailsActivity , MainActivity to View Binding (#5595)

* Butterknife to ViewBinding
* code fix to pass all tests
This commit is contained in:
Shashank Kumar 2024-03-20 05:51:51 +05:30 committed by GitHub
parent 23492ab11f
commit 8df0055a5a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 116 additions and 116 deletions

View file

@ -15,13 +15,12 @@ import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import butterknife.BindView;
import butterknife.ButterKnife;
import com.google.android.material.tabs.TabLayout; import com.google.android.material.tabs.TabLayout;
import fr.free.nrw.commons.Media; import fr.free.nrw.commons.Media;
import fr.free.nrw.commons.R; import fr.free.nrw.commons.R;
import fr.free.nrw.commons.Utils; import fr.free.nrw.commons.Utils;
import fr.free.nrw.commons.ViewPagerAdapter; import fr.free.nrw.commons.ViewPagerAdapter;
import fr.free.nrw.commons.databinding.ActivityCategoryDetailsBinding;
import fr.free.nrw.commons.explore.categories.media.CategoriesMediaFragment; import fr.free.nrw.commons.explore.categories.media.CategoriesMediaFragment;
import fr.free.nrw.commons.explore.categories.parent.ParentCategoriesFragment; import fr.free.nrw.commons.explore.categories.parent.ParentCategoriesFragment;
import fr.free.nrw.commons.explore.categories.sub.SubCategoriesFragment; import fr.free.nrw.commons.explore.categories.sub.SubCategoriesFragment;
@ -45,23 +44,23 @@ public class CategoryDetailsActivity extends BaseActivity
private CategoriesMediaFragment categoriesMediaFragment; private CategoriesMediaFragment categoriesMediaFragment;
private MediaDetailPagerFragment mediaDetails; private MediaDetailPagerFragment mediaDetails;
private String categoryName; private String categoryName;
@BindView(R.id.mediaContainer) FrameLayout mediaContainer;
@BindView(R.id.tab_layout) TabLayout tabLayout;
@BindView(R.id.viewPager) ViewPager viewPager;
@BindView(R.id.toolbar) Toolbar toolbar;
ViewPagerAdapter viewPagerAdapter; ViewPagerAdapter viewPagerAdapter;
private ActivityCategoryDetailsBinding binding;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_category_details);
ButterKnife.bind(this); binding = ActivityCategoryDetailsBinding.inflate(getLayoutInflater());
final View view = binding.getRoot();
setContentView(view);
supportFragmentManager = getSupportFragmentManager(); supportFragmentManager = getSupportFragmentManager();
viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager()); viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(viewPagerAdapter); binding.viewPager.setAdapter(viewPagerAdapter);
viewPager.setOffscreenPageLimit(2); binding.viewPager.setOffscreenPageLimit(2);
tabLayout.setupWithViewPager(viewPager); binding.tabLayout.setupWithViewPager(binding.viewPager);
setSupportActionBar(toolbar); setSupportActionBar(binding.toolbarBinding.toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setTabs(); setTabs();
setPageTitle(); setPageTitle();
@ -110,9 +109,9 @@ public class CategoryDetailsActivity extends BaseActivity
*/ */
@Override @Override
public void onMediaClicked(int position) { public void onMediaClicked(int position) {
tabLayout.setVisibility(View.GONE); binding.tabLayout.setVisibility(View.GONE);
viewPager.setVisibility(View.GONE); binding.viewPager.setVisibility(View.GONE);
mediaContainer.setVisibility(View.VISIBLE); binding.mediaContainer.setVisibility(View.VISIBLE);
if (mediaDetails == null || !mediaDetails.isVisible()) { if (mediaDetails == null || !mediaDetails.isVisible()) {
// set isFeaturedImage true for featured images, to include author field on media detail // set isFeaturedImage true for featured images, to include author field on media detail
mediaDetails = MediaDetailPagerFragment.newInstance(false, true); mediaDetails = MediaDetailPagerFragment.newInstance(false, true);
@ -216,9 +215,9 @@ public class CategoryDetailsActivity extends BaseActivity
@Override @Override
public void onBackPressed() { public void onBackPressed() {
if (supportFragmentManager.getBackStackEntryCount() == 1){ if (supportFragmentManager.getBackStackEntryCount() == 1){
tabLayout.setVisibility(View.VISIBLE); binding.tabLayout.setVisibility(View.VISIBLE);
viewPager.setVisibility(View.VISIBLE); binding.viewPager.setVisibility(View.VISIBLE);
mediaContainer.setVisibility(View.GONE); binding.mediaContainer.setVisibility(View.GONE);
} }
super.onBackPressed(); super.onBackPressed();
} }

View file

@ -12,15 +12,13 @@ import android.os.Bundle;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.widget.FrameLayout;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.viewpager.widget.ViewPager;
import androidx.work.ExistingWorkPolicy; import androidx.work.ExistingWorkPolicy;
import butterknife.BindView; import fr.free.nrw.commons.databinding.MainBinding;
import butterknife.ButterKnife;
import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.CommonsApplication;
import fr.free.nrw.commons.R; import fr.free.nrw.commons.R;
import fr.free.nrw.commons.WelcomeActivity; import fr.free.nrw.commons.WelcomeActivity;
@ -63,14 +61,6 @@ public class MainActivity extends BaseActivity
ContributionController controller; ContributionController controller;
@Inject @Inject
ContributionDao contributionDao; ContributionDao contributionDao;
@BindView(R.id.toolbar)
Toolbar toolbar;
@BindView(R.id.pager)
public UnswipableViewPager viewPager;
@BindView(R.id.fragmentContainer)
public FrameLayout fragmentContainer;
@BindView(R.id.fragment_main_nav_tab_layout)
NavTabLayout tabLayout;
private ContributionsFragment contributionsFragment; private ContributionsFragment contributionsFragment;
private NearbyParentFragment nearbyParentFragment; private NearbyParentFragment nearbyParentFragment;
@ -95,6 +85,11 @@ public class MainActivity extends BaseActivity
public Menu menu; public Menu menu;
public MainBinding binding;
NavTabLayout tabLayout;
/** /**
* Consumers should be simply using this method to use this activity. * Consumers should be simply using this method to use this activity.
* *
@ -122,11 +117,13 @@ public class MainActivity extends BaseActivity
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
binding = MainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
setSupportActionBar(binding.toolbarBinding.toolbar);
tabLayout = binding.fragmentMainNavTabLayout;
loadLocale(); loadLocale();
setContentView(R.layout.main);
ButterKnife.bind(this); binding.toolbarBinding.toolbar.setNavigationOnClickListener(view -> {
setSupportActionBar(toolbar);
toolbar.setNavigationOnClickListener(view -> {
onSupportNavigateUp(); onSupportNavigateUp();
}); });
/* /*
@ -177,11 +174,11 @@ public class MainActivity extends BaseActivity
} }
public void setSelectedItemId(int id) { public void setSelectedItemId(int id) {
tabLayout.setSelectedItemId(id); binding.fragmentMainNavTabLayout.setSelectedItemId(id);
} }
private void setUpPager() { private void setUpPager() {
tabLayout.setOnNavigationItemSelectedListener(navListener = (item) -> { binding.fragmentMainNavTabLayout.setOnNavigationItemSelectedListener(navListener = (item) -> {
if (!item.getTitle().equals(getString(R.string.more))) { if (!item.getTitle().equals(getString(R.string.more))) {
// do not change title for more fragment // do not change title for more fragment
setTitle(item.getTitle()); setTitle(item.getTitle());
@ -196,7 +193,7 @@ public class MainActivity extends BaseActivity
private void setUpLoggedOutPager() { private void setUpLoggedOutPager() {
loadFragment(ExploreFragment.newInstance(),false); loadFragment(ExploreFragment.newInstance(),false);
tabLayout.setOnNavigationItemSelectedListener(item -> { binding.fragmentMainNavTabLayout.setOnNavigationItemSelectedListener(item -> {
if (!item.getTitle().equals(getString(R.string.more))) { if (!item.getTitle().equals(getString(R.string.more))) {
// do not change title for more fragment // do not change title for more fragment
setTitle(item.getTitle()); setTitle(item.getTitle());
@ -258,11 +255,11 @@ public class MainActivity extends BaseActivity
} }
public void hideTabs() { public void hideTabs() {
tabLayout.setVisibility(View.GONE); binding.fragmentMainNavTabLayout.setVisibility(View.GONE);
} }
public void showTabs() { public void showTabs() {
tabLayout.setVisibility(View.VISIBLE); binding.fragmentMainNavTabLayout.setVisibility(View.VISIBLE);
} }
/** /**
@ -317,7 +314,7 @@ public class MainActivity extends BaseActivity
@Override @Override
protected void onSaveInstanceState(Bundle outState) { protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState); super.onSaveInstanceState(outState);
outState.putInt("viewPagerCurrentItem", viewPager.getCurrentItem()); outState.putInt("viewPagerCurrentItem", binding.pager.getCurrentItem());
outState.putString("activeFragment", activeFragment.name()); outState.putString("activeFragment", activeFragment.name());
} }
@ -472,7 +469,7 @@ public class MainActivity extends BaseActivity
* Public method to show nearby from the reference of this. * Public method to show nearby from the reference of this.
*/ */
public void showNearby() { public void showNearby() {
tabLayout.setSelectedItemId(NavTab.NEARBY.code()); binding.fragmentMainNavTabLayout.setSelectedItemId(NavTab.NEARBY.code());
} }
public enum ActiveFragment { public enum ActiveFragment {

View file

@ -1322,7 +1322,7 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
@Override @Override
public void setTabItemContributions() { public void setTabItemContributions() {
((MainActivity) getActivity()).viewPager.setCurrentItem(0); ((MainActivity) getActivity()).binding.pager.setCurrentItem(0);
// TODO // TODO
} }

View file

@ -15,7 +15,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?attr/mainBackground"> android:background="?attr/mainBackground">
<include layout="@layout/toolbar"/> <include
android:id="@+id/toolbarBinding"
layout="@layout/toolbar"/>
<com.google.android.material.tabs.TabLayout <com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout" android:id="@+id/tab_layout"

View file

@ -7,7 +7,9 @@
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:orientation="vertical"> android:orientation="vertical">
<include layout="@layout/toolbar" /> <include
android:id="@+id/toolbarBinding"
layout="@layout/toolbar" />
<RelativeLayout <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"