44import android .os .Bundle ;
55import android .text .TextUtils ;
66import android .util .Log ;
7- import android .widget .Button ;
8- import android .widget .TextView ;
7+ import android .view .View ;
98import android .widget .Toast ;
109
1110import com .firebase .ui .auth .AuthUI ;
1211import com .firebase .ui .auth .ErrorCodes ;
1312import com .firebase .ui .auth .IdpResponse ;
1413import com .firebase .uidemo .R ;
14+ import com .firebase .uidemo .databinding .ActivityAnonymousUpgradeBinding ;
1515import com .firebase .uidemo .util .ConfigurationUtils ;
1616import com .google .android .gms .tasks .OnCompleteListener ;
1717import com .google .android .gms .tasks .Task ;
2525import androidx .annotation .NonNull ;
2626import androidx .annotation .Nullable ;
2727import androidx .appcompat .app .AppCompatActivity ;
28- import butterknife .BindView ;
29- import butterknife .ButterKnife ;
30- import butterknife .OnClick ;
3128
3229public class AnonymousUpgradeActivity extends AppCompatActivity {
3330
3431 private static final String TAG = "AccountLink" ;
3532
3633 private static final int RC_SIGN_IN = 123 ;
3734
38- @ BindView (R .id .status_text )
39- TextView mStatus ;
40-
41- @ BindView (R .id .anon_sign_in )
42- Button mAnonSignInButton ;
43-
44- @ BindView (R .id .begin_flow )
45- Button mLaunchUIButton ;
46-
47- @ BindView (R .id .resolve_merge )
48- Button mResolveMergeButton ;
49-
50- @ BindView (R .id .sign_out )
51- Button mSignOutButton ;
35+ private ActivityAnonymousUpgradeBinding mBinding ;
5236
5337 private AuthCredential mPendingCredential ;
5438
5539 @ Override
5640 protected void onCreate (@ Nullable Bundle savedInstanceState ) {
5741 super .onCreate (savedInstanceState );
58- setContentView ( R . layout . activity_anonymous_upgrade );
59- ButterKnife . bind ( this );
42+ mBinding = ActivityAnonymousUpgradeBinding . inflate ( getLayoutInflater () );
43+ setContentView ( mBinding . getRoot () );
6044
6145 updateUI ();
6246
@@ -67,9 +51,36 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
6751 handleSignInResult (RC_SIGN_IN , ErrorCodes .ANONYMOUS_UPGRADE_MERGE_CONFLICT ,
6852 getIntent ());
6953 }
54+
55+ mBinding .anonSignIn .setOnClickListener (new View .OnClickListener () {
56+ @ Override
57+ public void onClick (View view ) {
58+ signInAnonymously ();
59+ }
60+ });
61+
62+ mBinding .beginFlow .setOnClickListener (new View .OnClickListener () {
63+ @ Override
64+ public void onClick (View view ) {
65+ startAuthUI ();
66+ }
67+ });
68+
69+ mBinding .resolveMerge .setOnClickListener (new View .OnClickListener () {
70+ @ Override
71+ public void onClick (View view ) {
72+ resolveMerge ();
73+ }
74+ });
75+
76+ mBinding .signOut .setOnClickListener (new View .OnClickListener () {
77+ @ Override
78+ public void onClick (View view ) {
79+ signOut ();
80+ }
81+ });
7082 }
7183
72- @ OnClick (R .id .anon_sign_in )
7384 public void signInAnonymously () {
7485 FirebaseAuth .getInstance ().signInAnonymously ()
7586 .addOnCompleteListener (this , new OnCompleteListener <AuthResult >() {
@@ -87,7 +98,6 @@ public void onComplete(@NonNull Task<AuthResult> task) {
8798 });
8899 }
89100
90- @ OnClick (R .id .begin_flow )
91101 public void startAuthUI () {
92102 List <AuthUI .IdpConfig > providers = ConfigurationUtils .getConfiguredProviders (this );
93103 Intent intent = AuthUI .getInstance ().createSignInIntentBuilder ()
@@ -98,7 +108,6 @@ public void startAuthUI() {
98108 startActivityForResult (intent , RC_SIGN_IN );
99109 }
100110
101- @ OnClick (R .id .resolve_merge )
102111 public void resolveMerge () {
103112 if (mPendingCredential == null ) {
104113 Toast .makeText (this , "Nothing to resolve." , Toast .LENGTH_SHORT ).show ();
@@ -125,7 +134,6 @@ public void onComplete(@NonNull Task<AuthResult> task) {
125134 });
126135 }
127136
128- @ OnClick (R .id .sign_out )
129137 public void signOut () {
130138 AuthUI .getInstance ().signOut (this )
131139 .addOnCompleteListener (new OnCompleteListener <Void >() {
@@ -156,7 +164,7 @@ private void handleSignInResult(int requestCode, int resultCode, Intent data) {
156164 } else if (response .getError ().getErrorCode () == ErrorCodes
157165 .ANONYMOUS_UPGRADE_MERGE_CONFLICT ) {
158166 setStatus ("Merge conflict: user already exists." );
159- mResolveMergeButton .setEnabled (true );
167+ mBinding . resolveMerge .setEnabled (true );
160168 mPendingCredential = response .getCredentialForLinking ();
161169 } else {
162170 Toast .makeText (this , "Auth error, see logs" , Toast .LENGTH_SHORT ).show ();
@@ -172,33 +180,33 @@ private void updateUI() {
172180
173181 if (currentUser == null ) {
174182 // Not signed in
175- mAnonSignInButton .setEnabled (true );
176- mLaunchUIButton .setEnabled (false );
177- mResolveMergeButton .setEnabled (false );
178- mSignOutButton .setEnabled (false );
183+ mBinding . anonSignIn .setEnabled (true );
184+ mBinding . beginFlow .setEnabled (false );
185+ mBinding . resolveMerge .setEnabled (false );
186+ mBinding . signOut .setEnabled (false );
179187 } else if (mPendingCredential == null && currentUser .isAnonymous ()) {
180188 // Anonymous user, waiting for linking
181- mAnonSignInButton .setEnabled (false );
182- mLaunchUIButton .setEnabled (true );
183- mResolveMergeButton .setEnabled (false );
184- mSignOutButton .setEnabled (true );
189+ mBinding . anonSignIn .setEnabled (false );
190+ mBinding . beginFlow .setEnabled (true );
191+ mBinding . resolveMerge .setEnabled (false );
192+ mBinding . signOut .setEnabled (true );
185193 } else if (mPendingCredential == null && !currentUser .isAnonymous ()) {
186194 // Fully signed in
187- mAnonSignInButton .setEnabled (false );
188- mLaunchUIButton .setEnabled (false );
189- mResolveMergeButton .setEnabled (false );
190- mSignOutButton .setEnabled (true );
195+ mBinding . anonSignIn .setEnabled (false );
196+ mBinding . beginFlow .setEnabled (false );
197+ mBinding . resolveMerge .setEnabled (false );
198+ mBinding . signOut .setEnabled (true );
191199 } else if (mPendingCredential != null ) {
192200 // Signed in anonymous, awaiting merge conflict
193- mAnonSignInButton .setEnabled (false );
194- mLaunchUIButton .setEnabled (false );
195- mResolveMergeButton .setEnabled (true );
196- mSignOutButton .setEnabled (true );
201+ mBinding . anonSignIn .setEnabled (false );
202+ mBinding . beginFlow .setEnabled (false );
203+ mBinding . resolveMerge .setEnabled (true );
204+ mBinding . signOut .setEnabled (true );
197205 }
198206 }
199207
200208 private void setStatus (String message ) {
201- mStatus .setText (message );
209+ mBinding . statusText .setText (message );
202210 }
203211
204212 private String getUserIdentifier (FirebaseUser user ) {
0 commit comments