Skip to content

Commit 29fb6e1

Browse files
Update FragmentPagerAdapter to FragmentStatePagetAdapter
1 parent e59a788 commit 29fb6e1

File tree

4 files changed

+49
-36
lines changed

4 files changed

+49
-36
lines changed

app/src/main/ic_graphic-playstore.png

20.4 KB
Loading

app/src/main/image.pptx

49.8 KB
Binary file not shown.

app/src/main/java/com/pleiades/pleione/base64/ui/main/MainActivity.java

Lines changed: 46 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import androidx.appcompat.widget.Toolbar;
1313
import androidx.fragment.app.Fragment;
1414
import androidx.fragment.app.FragmentManager;
15-
import androidx.fragment.app.FragmentPagerAdapter;
15+
import androidx.fragment.app.FragmentStatePagerAdapter;
1616
import androidx.viewpager.widget.ViewPager;
1717

1818
import com.google.android.material.floatingactionbutton.FloatingActionButton;
@@ -21,9 +21,11 @@
2121
import com.pleiades.pleione.base64.ui.SettingsActivity;
2222

2323
import org.apache.commons.codec.binary.Base64;
24-
import org.jetbrains.annotations.NotNull;
24+
25+
import static androidx.fragment.app.FragmentStatePagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT;
2526

2627
public class MainActivity extends AppCompatActivity {
28+
SectionsPagerAdapter sectionsPagerAdapter;
2729
ViewPager viewPager;
2830

2931
String externalInput;
@@ -38,21 +40,18 @@ protected void onCreate(Bundle savedInstanceState) {
3840
Toolbar toolbar = appbar.findViewById(R.id.toolbar_main);
3941
setSupportActionBar(toolbar);
4042

41-
SectionsPagerAdapter sectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
43+
sectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager(), BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
4244
viewPager = findViewById(R.id.pager);
4345
viewPager.setAdapter(sectionsPagerAdapter);
4446
TabLayout tabs = findViewById(R.id.layout_tab);
4547
tabs.setupWithViewPager(viewPager);
4648
FloatingActionButton fab = findViewById(R.id.fab);
4749

48-
fab.setOnClickListener(new View.OnClickListener() {
49-
@Override
50-
public void onClick(View view) {
51-
int index = viewPager.getCurrentItem();
52-
PlaceholderFragment fragment = (PlaceholderFragment) sectionsPagerAdapter.instantiateItem(viewPager, index);
50+
fab.setOnClickListener(view -> {
51+
int index = viewPager.getCurrentItem();
52+
PlaceholderFragment fragment = (PlaceholderFragment) sectionsPagerAdapter.instantiateItem(viewPager, index);
5353

54-
fragment.convert();
55-
}
54+
fragment.convert();
5655
});
5756
}
5857

@@ -66,7 +65,8 @@ protected void onResume() {
6665
if (intent.getAction().equals(Intent.ACTION_PROCESS_TEXT) && intent.hasExtra(Intent.EXTRA_PROCESS_TEXT)) {
6766
externalInput = intent.getStringExtra(Intent.EXTRA_PROCESS_TEXT);
6867
isExternalInputBase64 = Base64.isBase64(externalInput);
69-
viewPager.setCurrentItem(isExternalInputBase64 ? 1 : 0);
68+
int index = isExternalInputBase64 ? 1 : 0;
69+
viewPager.setCurrentItem(index);
7070
}
7171
}
7272
}
@@ -88,14 +88,13 @@ public boolean onOptionsItemSelected(@NonNull MenuItem item) {
8888
return super.onOptionsItemSelected(item);
8989
}
9090

91-
class SectionsPagerAdapter extends FragmentPagerAdapter {
91+
private class SectionsPagerAdapter extends FragmentStatePagerAdapter{
9292

93-
// constructor
94-
public SectionsPagerAdapter(FragmentManager fm) {
95-
super(fm, FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
93+
public SectionsPagerAdapter(@NonNull FragmentManager fm, int behavior) {
94+
super(fm, behavior);
9695
}
9796

98-
@NotNull
97+
@NonNull
9998
@Override
10099
public Fragment getItem(int position) {
101100
if (externalInput != null)
@@ -118,4 +117,35 @@ public int getCount() {
118117
return 2;
119118
}
120119
}
120+
121+
// private class SectionsPagerAdapter extends FragmentPagerAdapter {
122+
//
123+
// // constructor
124+
// public SectionsPagerAdapter(FragmentManager fm) {
125+
// super(fm, FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
126+
// }
127+
//
128+
// @NotNull
129+
// @Override
130+
// public Fragment getItem(int position) {
131+
// if (externalInput != null)
132+
// if ((position == 0 && !isExternalInputBase64) || position == 1 && isExternalInputBase64) {
133+
// Fragment fragment = PlaceholderFragment.newInstance(position, externalInput);
134+
// externalInput = null;
135+
// return fragment;
136+
// }
137+
// return PlaceholderFragment.newInstance(position, null);
138+
// }
139+
//
140+
// @Nullable
141+
// @Override
142+
// public CharSequence getPageTitle(int position) {
143+
// return position == 0 ? "ENCODE" : "DECODE";
144+
// }
145+
//
146+
// @Override
147+
// public int getCount() {
148+
// return 2;
149+
// }
150+
// }
121151
}

app/src/main/java/com/pleiades/pleione/base64/ui/main/PlaceholderFragment.java

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,7 @@
1313
import android.widget.EditText;
1414

1515
import androidx.annotation.NonNull;
16-
import androidx.annotation.Nullable;
1716
import androidx.fragment.app.Fragment;
18-
import androidx.lifecycle.Observer;
1917
import androidx.lifecycle.ViewModelProvider;
2018

2119
import com.pleiades.pleione.base64.R;
@@ -65,26 +63,11 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
6563
View root = inflater.inflate(R.layout.fragment_main, container, false);
6664

6765
inputEditText = root.findViewById(R.id.input);
68-
pageViewModel.getHint().observe(this, new Observer<String>() {
69-
@Override
70-
public void onChanged(@Nullable String s) {
71-
inputEditText.setHint(s);
72-
}
73-
});
74-
pageViewModel.getExternalInput().observe(this, new Observer<String>() {
75-
@Override
76-
public void onChanged(String s) {
77-
inputEditText.setText(s);
78-
}
79-
});
66+
pageViewModel.getHint().observe(this, s -> inputEditText.setHint(s));
67+
pageViewModel.getExternalInput().observe(this, s -> inputEditText.setText(s));
8068

8169
outputEditText = root.findViewById(R.id.output);
82-
pageViewModel.getOutput().observe(this, new Observer<String>() {
83-
@Override
84-
public void onChanged(String s) {
85-
outputEditText.setText(s);
86-
}
87-
});
70+
pageViewModel.getOutput().observe(this, s -> outputEditText.setText(s));
8871

8972
return root;
9073
}

0 commit comments

Comments
 (0)