3131import android .view .View .OnTouchListener ;
3232import android .view .ViewGroup ;
3333import android .widget .Button ;
34- import android .widget .LinearLayout ;
3534import android .widget .TextView ;
3635import android .widget .Toast ;
3736
3837import com .google .android .material .color .MaterialColors ;
3938import com .nutomic .syncthingandroid .R ;
4039import com .nutomic .syncthingandroid .SyncthingApp ;
40+ import com .nutomic .syncthingandroid .databinding .ActivityFirstStartBinding ;
4141import com .nutomic .syncthingandroid .service .Constants ;
4242import com .nutomic .syncthingandroid .util .PermissionUtil ;
4343import com .nutomic .syncthingandroid .util .Util ;
@@ -69,12 +69,10 @@ private enum Slide {
6969 private static Slide [] slides = Slide .values ();
7070 private static String TAG = "FirstStartActivity" ;
7171
72- private ViewPager mViewPager ;
7372 private ViewPagerAdapter mViewPagerAdapter ;
74- private LinearLayout mDotsLayout ;
7573 private TextView [] mDots ;
76- private Button mBackButton ;
77- private Button mNextButton ;
74+
75+ private ActivityFirstStartBinding binding ;
7876
7977 @ Inject
8078 SharedPreferences mPreferences ;
@@ -95,13 +93,10 @@ protected void onCreate(Bundle savedInstanceState) {
9593 }
9694
9795 // Show first start welcome wizard UI.
98- setContentView (R .layout .activity_first_start );
99- mViewPager = (ViewPager ) findViewById (R .id .view_pager );
100- mDotsLayout = (LinearLayout ) findViewById (R .id .layoutDots );
101- mBackButton = (Button ) findViewById (R .id .btn_back );
102- mNextButton = (Button ) findViewById (R .id .btn_next );
96+ binding = ActivityFirstStartBinding .inflate (getLayoutInflater ());
97+ setContentView (binding .getRoot ());
10398
104- mViewPager .setOnTouchListener (new OnTouchListener () {
99+ binding . viewPager .setOnTouchListener (new OnTouchListener () {
105100 @ Override
106101 public boolean onTouch (View v , MotionEvent event ) {
107102 // Consume the event to prevent swiping through the slides.
@@ -115,17 +110,17 @@ public boolean onTouch(View v, MotionEvent event) {
115110 setActiveBottomDot (0 );
116111
117112 mViewPagerAdapter = new ViewPagerAdapter ();
118- mViewPager .setAdapter (mViewPagerAdapter );
119- mViewPager .addOnPageChangeListener (mViewPagerPageChangeListener );
113+ binding . viewPager .setAdapter (mViewPagerAdapter );
114+ binding . viewPager .addOnPageChangeListener (mViewPagerPageChangeListener );
120115
121- mBackButton .setOnClickListener (new View .OnClickListener () {
116+ binding . btnBack .setOnClickListener (new View .OnClickListener () {
122117 @ Override
123118 public void onClick (View v ) {
124119 onBtnBackClick ();
125120 }
126121 });
127122
128- mNextButton .setOnClickListener (new View .OnClickListener () {
123+ binding . btnNext .setOnClickListener (new View .OnClickListener () {
129124 @ Override
130125 public void onClick (View v ) {
131126 onBtnNextClick ();
@@ -139,12 +134,12 @@ public void onClick(View v) {
139134 }
140135
141136 public void onBtnBackClick () {
142- int current = mViewPager .getCurrentItem () - 1 ;
137+ int current = binding . viewPager .getCurrentItem () - 1 ;
143138 if (current >= 0 ) {
144139 // Move to previous slider.
145- mViewPager .setCurrentItem (current );
140+ binding . viewPager .setCurrentItem (current );
146141 if (current == 0 ) {
147- mBackButton .setVisibility (View .GONE );
142+ binding . btnBack .setVisibility (View .GONE );
148143 }
149144 }
150145 }
@@ -171,11 +166,11 @@ public void onBtnNextClick() {
171166 break ;
172167 }
173168
174- int next = mViewPager .getCurrentItem () + 1 ;
169+ int next = binding . viewPager .getCurrentItem () + 1 ;
175170 while (next < slides .length ) {
176171 if (!shouldSkipSlide (slides [next ])) {
177- mViewPager .setCurrentItem (next );
178- mBackButton .setVisibility (View .VISIBLE );
172+ binding . viewPager .setCurrentItem (next );
173+ binding . btnBack .setVisibility (View .VISIBLE );
179174 break ;
180175 }
181176 next ++;
@@ -231,7 +226,7 @@ private void upgradeToApiLevel30() {
231226 }
232227
233228 private Slide currentSlide () {
234- return slides [mViewPager .getCurrentItem ()];
229+ return slides [binding . viewPager .getCurrentItem ()];
235230 }
236231
237232 private boolean shouldSkipSlide (Slide slide ) {
@@ -259,7 +254,7 @@ private void addBottomDots() {
259254 mDots [i ] = new TextView (this );
260255 mDots [i ].setText (Html .fromHtml ("•" ));
261256 mDots [i ].setTextSize (35 );
262- mDotsLayout .addView (mDots [i ]);
257+ binding . layoutDots .addView (mDots [i ]);
263258 }
264259 }
265260
@@ -280,7 +275,7 @@ public void onPageSelected(int position) {
280275 setActiveBottomDot (position );
281276
282277 // Change the next button text from next to finish on last slide.
283- mNextButton .setText (getString ((position == slides .length - 1 ) ? R .string .finish : R .string .cont ));
278+ binding . btnNext .setText (getString ((position == slides .length - 1 ) ? R .string .finish : R .string .cont ));
284279 }
285280
286281 @ Override
0 commit comments