diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java b/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java index b5d13f4c7..457bd48c6 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java @@ -15,13 +15,12 @@ import androidx.appcompat.widget.Toolbar; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.viewpager.widget.ViewPager; -import butterknife.BindView; -import butterknife.ButterKnife; import com.google.android.material.tabs.TabLayout; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; import fr.free.nrw.commons.Utils; 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.parent.ParentCategoriesFragment; import fr.free.nrw.commons.explore.categories.sub.SubCategoriesFragment; @@ -45,23 +44,23 @@ public class CategoryDetailsActivity extends BaseActivity private CategoriesMediaFragment categoriesMediaFragment; private MediaDetailPagerFragment mediaDetails; 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; + private ActivityCategoryDetailsBinding binding; + @Override protected void onCreate(Bundle 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(); viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager()); - viewPager.setAdapter(viewPagerAdapter); - viewPager.setOffscreenPageLimit(2); - tabLayout.setupWithViewPager(viewPager); - setSupportActionBar(toolbar); + binding.viewPager.setAdapter(viewPagerAdapter); + binding.viewPager.setOffscreenPageLimit(2); + binding.tabLayout.setupWithViewPager(binding.viewPager); + setSupportActionBar(binding.toolbarBinding.toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); setTabs(); setPageTitle(); @@ -110,9 +109,9 @@ public class CategoryDetailsActivity extends BaseActivity */ @Override public void onMediaClicked(int position) { - tabLayout.setVisibility(View.GONE); - viewPager.setVisibility(View.GONE); - mediaContainer.setVisibility(View.VISIBLE); + binding.tabLayout.setVisibility(View.GONE); + binding.viewPager.setVisibility(View.GONE); + binding.mediaContainer.setVisibility(View.VISIBLE); if (mediaDetails == null || !mediaDetails.isVisible()) { // set isFeaturedImage true for featured images, to include author field on media detail mediaDetails = MediaDetailPagerFragment.newInstance(false, true); @@ -216,9 +215,9 @@ public class CategoryDetailsActivity extends BaseActivity @Override public void onBackPressed() { if (supportFragmentManager.getBackStackEntryCount() == 1){ - tabLayout.setVisibility(View.VISIBLE); - viewPager.setVisibility(View.VISIBLE); - mediaContainer.setVisibility(View.GONE); + binding.tabLayout.setVisibility(View.VISIBLE); + binding.viewPager.setVisibility(View.VISIBLE); + binding.mediaContainer.setVisibility(View.GONE); } super.onBackPressed(); } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java b/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java index c68f7056f..d6b508f65 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java @@ -12,15 +12,13 @@ import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; -import android.widget.FrameLayout; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.appcompat.widget.Toolbar; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; +import androidx.viewpager.widget.ViewPager; import androidx.work.ExistingWorkPolicy; -import butterknife.BindView; -import butterknife.ButterKnife; +import fr.free.nrw.commons.databinding.MainBinding; import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.R; import fr.free.nrw.commons.WelcomeActivity; @@ -63,14 +61,6 @@ public class MainActivity extends BaseActivity ContributionController controller; @Inject 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 NearbyParentFragment nearbyParentFragment; @@ -95,6 +85,11 @@ public class MainActivity extends BaseActivity public Menu menu; + public MainBinding binding; + + NavTabLayout tabLayout; + + /** * Consumers should be simply using this method to use this activity. * @@ -122,11 +117,13 @@ public class MainActivity extends BaseActivity @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + binding = MainBinding.inflate(getLayoutInflater()); + setContentView(binding.getRoot()); + setSupportActionBar(binding.toolbarBinding.toolbar); + tabLayout = binding.fragmentMainNavTabLayout; loadLocale(); - setContentView(R.layout.main); - ButterKnife.bind(this); - setSupportActionBar(toolbar); - toolbar.setNavigationOnClickListener(view -> { + + binding.toolbarBinding.toolbar.setNavigationOnClickListener(view -> { onSupportNavigateUp(); }); /* @@ -177,11 +174,11 @@ public class MainActivity extends BaseActivity } public void setSelectedItemId(int id) { - tabLayout.setSelectedItemId(id); + binding.fragmentMainNavTabLayout.setSelectedItemId(id); } private void setUpPager() { - tabLayout.setOnNavigationItemSelectedListener(navListener = (item) -> { + binding.fragmentMainNavTabLayout.setOnNavigationItemSelectedListener(navListener = (item) -> { if (!item.getTitle().equals(getString(R.string.more))) { // do not change title for more fragment setTitle(item.getTitle()); @@ -196,7 +193,7 @@ public class MainActivity extends BaseActivity private void setUpLoggedOutPager() { loadFragment(ExploreFragment.newInstance(),false); - tabLayout.setOnNavigationItemSelectedListener(item -> { + binding.fragmentMainNavTabLayout.setOnNavigationItemSelectedListener(item -> { if (!item.getTitle().equals(getString(R.string.more))) { // do not change title for more fragment setTitle(item.getTitle()); @@ -258,11 +255,11 @@ public class MainActivity extends BaseActivity } public void hideTabs() { - tabLayout.setVisibility(View.GONE); + binding.fragmentMainNavTabLayout.setVisibility(View.GONE); } public void showTabs() { - tabLayout.setVisibility(View.VISIBLE); + binding.fragmentMainNavTabLayout.setVisibility(View.VISIBLE); } /** @@ -317,7 +314,7 @@ public class MainActivity extends BaseActivity @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); - outState.putInt("viewPagerCurrentItem", viewPager.getCurrentItem()); + outState.putInt("viewPagerCurrentItem", binding.pager.getCurrentItem()); 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 void showNearby() { - tabLayout.setSelectedItemId(NavTab.NEARBY.code()); + binding.fragmentMainNavTabLayout.setSelectedItemId(NavTab.NEARBY.code()); } public enum ActiveFragment { diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java index a9a47baba..094687619 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java @@ -1322,7 +1322,7 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment @Override public void setTabItemContributions() { - ((MainActivity) getActivity()).viewPager.setCurrentItem(0); + ((MainActivity) getActivity()).binding.pager.setCurrentItem(0); // TODO } diff --git a/app/src/main/java/fr/free/nrw/commons/settings/SettingsActivity.java b/app/src/main/java/fr/free/nrw/commons/settings/SettingsActivity.java index 49fe9bf13..fd231597b 100644 --- a/app/src/main/java/fr/free/nrw/commons/settings/SettingsActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/settings/SettingsActivity.java @@ -1,69 +1,69 @@ -package fr.free.nrw.commons.settings; - -import android.os.Bundle; -import android.view.MenuItem; - -import android.view.View; -import androidx.appcompat.app.AppCompatDelegate; - -import fr.free.nrw.commons.databinding.ActivitySettingsBinding; -import fr.free.nrw.commons.theme.BaseActivity; - -/** - * allows the user to change the settings - */ -public class SettingsActivity extends BaseActivity { - - private ActivitySettingsBinding binding; - private AppCompatDelegate settingsDelegate; - /** - * to be called when the activity starts - * @param savedInstanceState the previously saved state - */ - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - binding = ActivitySettingsBinding.inflate(getLayoutInflater()); - final View view = binding.getRoot(); - setContentView(view); - - setSupportActionBar(binding.toolbarBinding.toolbar); - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - } - - // Get an action bar - /** - * takes care of actions taken after the creation has happened - * @param savedInstanceState the saved state - */ - @Override - protected void onPostCreate(Bundle savedInstanceState) { - super.onPostCreate(savedInstanceState); - if (settingsDelegate == null) { - settingsDelegate = AppCompatDelegate.create(this, null); - } - settingsDelegate.onPostCreate(savedInstanceState); - } - - @Override - public boolean onSupportNavigateUp() { - onBackPressed(); - return true; - } - - /** - * Handle action-bar clicks - * @param item the selected item - * @return true on success, false on failure - */ - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - finish(); - return true; - default: - return super.onOptionsItemSelected(item); - } - } -} +package fr.free.nrw.commons.settings; + +import android.os.Bundle; +import android.view.MenuItem; + +import android.view.View; +import androidx.appcompat.app.AppCompatDelegate; + +import fr.free.nrw.commons.databinding.ActivitySettingsBinding; +import fr.free.nrw.commons.theme.BaseActivity; + +/** + * allows the user to change the settings + */ +public class SettingsActivity extends BaseActivity { + + private ActivitySettingsBinding binding; + private AppCompatDelegate settingsDelegate; + /** + * to be called when the activity starts + * @param savedInstanceState the previously saved state + */ + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + binding = ActivitySettingsBinding.inflate(getLayoutInflater()); + final View view = binding.getRoot(); + setContentView(view); + + setSupportActionBar(binding.toolbarBinding.toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + } + + // Get an action bar + /** + * takes care of actions taken after the creation has happened + * @param savedInstanceState the saved state + */ + @Override + protected void onPostCreate(Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + if (settingsDelegate == null) { + settingsDelegate = AppCompatDelegate.create(this, null); + } + settingsDelegate.onPostCreate(savedInstanceState); + } + + @Override + public boolean onSupportNavigateUp() { + onBackPressed(); + return true; + } + + /** + * Handle action-bar clicks + * @param item the selected item + * @return true on success, false on failure + */ + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + finish(); + return true; + default: + return super.onOptionsItemSelected(item); + } + } +} diff --git a/app/src/main/res/layout/activity_category_details.xml b/app/src/main/res/layout/activity_category_details.xml index f0df5fbf3..a6be3e863 100644 --- a/app/src/main/res/layout/activity_category_details.xml +++ b/app/src/main/res/layout/activity_category_details.xml @@ -15,7 +15,9 @@ android:layout_height="wrap_content" android:background="?attr/mainBackground"> - + - \ No newline at end of file + diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 70db3d5f3..96b649cbe 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -29,4 +29,4 @@ tools:layout="@xml/preferences" /> - \ No newline at end of file + diff --git a/app/src/main/res/layout/main.xml b/app/src/main/res/layout/main.xml index 91ba13a35..ef199d294 100644 --- a/app/src/main/res/layout/main.xml +++ b/app/src/main/res/layout/main.xml @@ -7,7 +7,9 @@ android:gravity="center_horizontal" android:orientation="vertical"> - +