Skip to content

Commit 8df0055

Browse files
Migrated CategoryDetailsActivity , MainActivity to View Binding (commons-app#5595)
* Butterknife to ViewBinding * code fix to pass all tests
1 parent 23492ab commit 8df0055

File tree

8 files changed

+116
-116
lines changed

8 files changed

+116
-116
lines changed

app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,12 @@
1515
import androidx.fragment.app.Fragment;
1616
import androidx.fragment.app.FragmentManager;
1717
import androidx.viewpager.widget.ViewPager;
18-
import butterknife.BindView;
19-
import butterknife.ButterKnife;
2018
import com.google.android.material.tabs.TabLayout;
2119
import fr.free.nrw.commons.Media;
2220
import fr.free.nrw.commons.R;
2321
import fr.free.nrw.commons.Utils;
2422
import fr.free.nrw.commons.ViewPagerAdapter;
23+
import fr.free.nrw.commons.databinding.ActivityCategoryDetailsBinding;
2524
import fr.free.nrw.commons.explore.categories.media.CategoriesMediaFragment;
2625
import fr.free.nrw.commons.explore.categories.parent.ParentCategoriesFragment;
2726
import fr.free.nrw.commons.explore.categories.sub.SubCategoriesFragment;
@@ -45,23 +44,23 @@ public class CategoryDetailsActivity extends BaseActivity
4544
private CategoriesMediaFragment categoriesMediaFragment;
4645
private MediaDetailPagerFragment mediaDetails;
4746
private String categoryName;
48-
@BindView(R.id.mediaContainer) FrameLayout mediaContainer;
49-
@BindView(R.id.tab_layout) TabLayout tabLayout;
50-
@BindView(R.id.viewPager) ViewPager viewPager;
51-
@BindView(R.id.toolbar) Toolbar toolbar;
5247
ViewPagerAdapter viewPagerAdapter;
5348

49+
private ActivityCategoryDetailsBinding binding;
50+
5451
@Override
5552
protected void onCreate(Bundle savedInstanceState) {
5653
super.onCreate(savedInstanceState);
57-
setContentView(R.layout.activity_category_details);
58-
ButterKnife.bind(this);
54+
55+
binding = ActivityCategoryDetailsBinding.inflate(getLayoutInflater());
56+
final View view = binding.getRoot();
57+
setContentView(view);
5958
supportFragmentManager = getSupportFragmentManager();
6059
viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
61-
viewPager.setAdapter(viewPagerAdapter);
62-
viewPager.setOffscreenPageLimit(2);
63-
tabLayout.setupWithViewPager(viewPager);
64-
setSupportActionBar(toolbar);
60+
binding.viewPager.setAdapter(viewPagerAdapter);
61+
binding.viewPager.setOffscreenPageLimit(2);
62+
binding.tabLayout.setupWithViewPager(binding.viewPager);
63+
setSupportActionBar(binding.toolbarBinding.toolbar);
6564
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
6665
setTabs();
6766
setPageTitle();
@@ -110,9 +109,9 @@ private void setPageTitle() {
110109
*/
111110
@Override
112111
public void onMediaClicked(int position) {
113-
tabLayout.setVisibility(View.GONE);
114-
viewPager.setVisibility(View.GONE);
115-
mediaContainer.setVisibility(View.VISIBLE);
112+
binding.tabLayout.setVisibility(View.GONE);
113+
binding.viewPager.setVisibility(View.GONE);
114+
binding.mediaContainer.setVisibility(View.VISIBLE);
116115
if (mediaDetails == null || !mediaDetails.isVisible()) {
117116
// set isFeaturedImage true for featured images, to include author field on media detail
118117
mediaDetails = MediaDetailPagerFragment.newInstance(false, true);
@@ -216,9 +215,9 @@ public boolean onOptionsItemSelected(MenuItem item) {
216215
@Override
217216
public void onBackPressed() {
218217
if (supportFragmentManager.getBackStackEntryCount() == 1){
219-
tabLayout.setVisibility(View.VISIBLE);
220-
viewPager.setVisibility(View.VISIBLE);
221-
mediaContainer.setVisibility(View.GONE);
218+
binding.tabLayout.setVisibility(View.VISIBLE);
219+
binding.viewPager.setVisibility(View.VISIBLE);
220+
binding.mediaContainer.setVisibility(View.GONE);
222221
}
223222
super.onBackPressed();
224223
}

app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,13 @@
1212
import android.view.Menu;
1313
import android.view.MenuItem;
1414
import android.view.View;
15-
import android.widget.FrameLayout;
1615
import androidx.annotation.NonNull;
1716
import androidx.annotation.Nullable;
18-
import androidx.appcompat.widget.Toolbar;
1917
import androidx.fragment.app.Fragment;
2018
import androidx.fragment.app.FragmentManager;
19+
import androidx.viewpager.widget.ViewPager;
2120
import androidx.work.ExistingWorkPolicy;
22-
import butterknife.BindView;
23-
import butterknife.ButterKnife;
21+
import fr.free.nrw.commons.databinding.MainBinding;
2422
import fr.free.nrw.commons.CommonsApplication;
2523
import fr.free.nrw.commons.R;
2624
import fr.free.nrw.commons.WelcomeActivity;
@@ -63,14 +61,6 @@ public class MainActivity extends BaseActivity
6361
ContributionController controller;
6462
@Inject
6563
ContributionDao contributionDao;
66-
@BindView(R.id.toolbar)
67-
Toolbar toolbar;
68-
@BindView(R.id.pager)
69-
public UnswipableViewPager viewPager;
70-
@BindView(R.id.fragmentContainer)
71-
public FrameLayout fragmentContainer;
72-
@BindView(R.id.fragment_main_nav_tab_layout)
73-
NavTabLayout tabLayout;
7464

7565
private ContributionsFragment contributionsFragment;
7666
private NearbyParentFragment nearbyParentFragment;
@@ -95,6 +85,11 @@ public class MainActivity extends BaseActivity
9585

9686
public Menu menu;
9787

88+
public MainBinding binding;
89+
90+
NavTabLayout tabLayout;
91+
92+
9893
/**
9994
* Consumers should be simply using this method to use this activity.
10095
*
@@ -122,11 +117,13 @@ public boolean onSupportNavigateUp() {
122117
@Override
123118
public void onCreate(Bundle savedInstanceState) {
124119
super.onCreate(savedInstanceState);
120+
binding = MainBinding.inflate(getLayoutInflater());
121+
setContentView(binding.getRoot());
122+
setSupportActionBar(binding.toolbarBinding.toolbar);
123+
tabLayout = binding.fragmentMainNavTabLayout;
125124
loadLocale();
126-
setContentView(R.layout.main);
127-
ButterKnife.bind(this);
128-
setSupportActionBar(toolbar);
129-
toolbar.setNavigationOnClickListener(view -> {
125+
126+
binding.toolbarBinding.toolbar.setNavigationOnClickListener(view -> {
130127
onSupportNavigateUp();
131128
});
132129
/*
@@ -177,11 +174,11 @@ public void onCreate(Bundle savedInstanceState) {
177174
}
178175

179176
public void setSelectedItemId(int id) {
180-
tabLayout.setSelectedItemId(id);
177+
binding.fragmentMainNavTabLayout.setSelectedItemId(id);
181178
}
182179

183180
private void setUpPager() {
184-
tabLayout.setOnNavigationItemSelectedListener(navListener = (item) -> {
181+
binding.fragmentMainNavTabLayout.setOnNavigationItemSelectedListener(navListener = (item) -> {
185182
if (!item.getTitle().equals(getString(R.string.more))) {
186183
// do not change title for more fragment
187184
setTitle(item.getTitle());
@@ -196,7 +193,7 @@ private void setUpPager() {
196193

197194
private void setUpLoggedOutPager() {
198195
loadFragment(ExploreFragment.newInstance(),false);
199-
tabLayout.setOnNavigationItemSelectedListener(item -> {
196+
binding.fragmentMainNavTabLayout.setOnNavigationItemSelectedListener(item -> {
200197
if (!item.getTitle().equals(getString(R.string.more))) {
201198
// do not change title for more fragment
202199
setTitle(item.getTitle());
@@ -258,11 +255,11 @@ private boolean loadFragment(Fragment fragment,boolean showBottom ) {
258255
}
259256

260257
public void hideTabs() {
261-
tabLayout.setVisibility(View.GONE);
258+
binding.fragmentMainNavTabLayout.setVisibility(View.GONE);
262259
}
263260

264261
public void showTabs() {
265-
tabLayout.setVisibility(View.VISIBLE);
262+
binding.fragmentMainNavTabLayout.setVisibility(View.VISIBLE);
266263
}
267264

268265
/**
@@ -317,7 +314,7 @@ protected void onPostCreate(@Nullable Bundle savedInstanceState) {
317314
@Override
318315
protected void onSaveInstanceState(Bundle outState) {
319316
super.onSaveInstanceState(outState);
320-
outState.putInt("viewPagerCurrentItem", viewPager.getCurrentItem());
317+
outState.putInt("viewPagerCurrentItem", binding.pager.getCurrentItem());
321318
outState.putString("activeFragment", activeFragment.name());
322319
}
323320

@@ -472,7 +469,7 @@ protected void onDestroy() {
472469
* Public method to show nearby from the reference of this.
473470
*/
474471
public void showNearby() {
475-
tabLayout.setSelectedItemId(NavTab.NEARBY.code());
472+
binding.fragmentMainNavTabLayout.setSelectedItemId(NavTab.NEARBY.code());
476473
}
477474

478475
public enum ActiveFragment {

app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1322,7 +1322,7 @@ public void setProgressBarVisibility(final boolean isVisible) {
13221322

13231323
@Override
13241324
public void setTabItemContributions() {
1325-
((MainActivity) getActivity()).viewPager.setCurrentItem(0);
1325+
((MainActivity) getActivity()).binding.pager.setCurrentItem(0);
13261326
// TODO
13271327
}
13281328

Lines changed: 69 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,69 @@
1-
package fr.free.nrw.commons.settings;
2-
3-
import android.os.Bundle;
4-
import android.view.MenuItem;
5-
6-
import android.view.View;
7-
import androidx.appcompat.app.AppCompatDelegate;
8-
9-
import fr.free.nrw.commons.databinding.ActivitySettingsBinding;
10-
import fr.free.nrw.commons.theme.BaseActivity;
11-
12-
/**
13-
* allows the user to change the settings
14-
*/
15-
public class SettingsActivity extends BaseActivity {
16-
17-
private ActivitySettingsBinding binding;
18-
private AppCompatDelegate settingsDelegate;
19-
/**
20-
* to be called when the activity starts
21-
* @param savedInstanceState the previously saved state
22-
*/
23-
@Override
24-
protected void onCreate(Bundle savedInstanceState) {
25-
super.onCreate(savedInstanceState);
26-
binding = ActivitySettingsBinding.inflate(getLayoutInflater());
27-
final View view = binding.getRoot();
28-
setContentView(view);
29-
30-
setSupportActionBar(binding.toolbarBinding.toolbar);
31-
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
32-
}
33-
34-
// Get an action bar
35-
/**
36-
* takes care of actions taken after the creation has happened
37-
* @param savedInstanceState the saved state
38-
*/
39-
@Override
40-
protected void onPostCreate(Bundle savedInstanceState) {
41-
super.onPostCreate(savedInstanceState);
42-
if (settingsDelegate == null) {
43-
settingsDelegate = AppCompatDelegate.create(this, null);
44-
}
45-
settingsDelegate.onPostCreate(savedInstanceState);
46-
}
47-
48-
@Override
49-
public boolean onSupportNavigateUp() {
50-
onBackPressed();
51-
return true;
52-
}
53-
54-
/**
55-
* Handle action-bar clicks
56-
* @param item the selected item
57-
* @return true on success, false on failure
58-
*/
59-
@Override
60-
public boolean onOptionsItemSelected(MenuItem item) {
61-
switch (item.getItemId()) {
62-
case android.R.id.home:
63-
finish();
64-
return true;
65-
default:
66-
return super.onOptionsItemSelected(item);
67-
}
68-
}
69-
}
1+
package fr.free.nrw.commons.settings;
2+
3+
import android.os.Bundle;
4+
import android.view.MenuItem;
5+
6+
import android.view.View;
7+
import androidx.appcompat.app.AppCompatDelegate;
8+
9+
import fr.free.nrw.commons.databinding.ActivitySettingsBinding;
10+
import fr.free.nrw.commons.theme.BaseActivity;
11+
12+
/**
13+
* allows the user to change the settings
14+
*/
15+
public class SettingsActivity extends BaseActivity {
16+
17+
private ActivitySettingsBinding binding;
18+
private AppCompatDelegate settingsDelegate;
19+
/**
20+
* to be called when the activity starts
21+
* @param savedInstanceState the previously saved state
22+
*/
23+
@Override
24+
protected void onCreate(Bundle savedInstanceState) {
25+
super.onCreate(savedInstanceState);
26+
binding = ActivitySettingsBinding.inflate(getLayoutInflater());
27+
final View view = binding.getRoot();
28+
setContentView(view);
29+
30+
setSupportActionBar(binding.toolbarBinding.toolbar);
31+
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
32+
}
33+
34+
// Get an action bar
35+
/**
36+
* takes care of actions taken after the creation has happened
37+
* @param savedInstanceState the saved state
38+
*/
39+
@Override
40+
protected void onPostCreate(Bundle savedInstanceState) {
41+
super.onPostCreate(savedInstanceState);
42+
if (settingsDelegate == null) {
43+
settingsDelegate = AppCompatDelegate.create(this, null);
44+
}
45+
settingsDelegate.onPostCreate(savedInstanceState);
46+
}
47+
48+
@Override
49+
public boolean onSupportNavigateUp() {
50+
onBackPressed();
51+
return true;
52+
}
53+
54+
/**
55+
* Handle action-bar clicks
56+
* @param item the selected item
57+
* @return true on success, false on failure
58+
*/
59+
@Override
60+
public boolean onOptionsItemSelected(MenuItem item) {
61+
switch (item.getItemId()) {
62+
case android.R.id.home:
63+
finish();
64+
return true;
65+
default:
66+
return super.onOptionsItemSelected(item);
67+
}
68+
}
69+
}

app/src/main/res/layout/activity_category_details.xml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515
android:layout_height="wrap_content"
1616
android:background="?attr/mainBackground">
1717

18-
<include layout="@layout/toolbar"/>
18+
<include
19+
android:id="@+id/toolbarBinding"
20+
layout="@layout/toolbar"/>
1921

2022
<com.google.android.material.tabs.TabLayout
2123
android:id="@+id/tab_layout"
@@ -44,4 +46,4 @@
4446
android:layout_below="@id/toolbar_layout" />
4547
</RelativeLayout>
4648

47-
</androidx.drawerlayout.widget.DrawerLayout>
49+
</androidx.drawerlayout.widget.DrawerLayout>

app/src/main/res/layout/activity_settings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,4 @@
2929
tools:layout="@xml/preferences"
3030
/>
3131
</RelativeLayout>
32-
</androidx.drawerlayout.widget.DrawerLayout>
32+
</androidx.drawerlayout.widget.DrawerLayout>

app/src/main/res/layout/main.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
android:gravity="center_horizontal"
88
android:orientation="vertical">
99

10-
<include layout="@layout/toolbar" />
10+
<include
11+
android:id="@+id/toolbarBinding"
12+
layout="@layout/toolbar" />
1113

1214
<RelativeLayout
1315
android:layout_width="match_parent"

app/src/test/kotlin/fr/free/nrw/commons/contributions/MainActivityUnitTests.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -481,4 +481,4 @@ class MainActivityUnitTests {
481481
.putBoolean("last_opened_nearby",false)
482482
}
483483

484-
}
484+
}

0 commit comments

Comments
 (0)