4
4
import android .os .Bundle ;
5
5
import android .text .TextUtils ;
6
6
import android .util .Log ;
7
- import android .widget .Button ;
8
- import android .widget .TextView ;
7
+ import android .view .View ;
9
8
import android .widget .Toast ;
10
9
11
10
import com .firebase .ui .auth .AuthUI ;
12
11
import com .firebase .ui .auth .ErrorCodes ;
13
12
import com .firebase .ui .auth .IdpResponse ;
14
13
import com .firebase .uidemo .R ;
14
+ import com .firebase .uidemo .databinding .ActivityAnonymousUpgradeBinding ;
15
15
import com .firebase .uidemo .util .ConfigurationUtils ;
16
16
import com .google .android .gms .tasks .OnCompleteListener ;
17
17
import com .google .android .gms .tasks .Task ;
25
25
import androidx .annotation .NonNull ;
26
26
import androidx .annotation .Nullable ;
27
27
import androidx .appcompat .app .AppCompatActivity ;
28
- import butterknife .BindView ;
29
- import butterknife .ButterKnife ;
30
- import butterknife .OnClick ;
31
28
32
29
public class AnonymousUpgradeActivity extends AppCompatActivity {
33
30
34
31
private static final String TAG = "AccountLink" ;
35
32
36
33
private static final int RC_SIGN_IN = 123 ;
37
34
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 ;
52
36
53
37
private AuthCredential mPendingCredential ;
54
38
55
39
@ Override
56
40
protected void onCreate (@ Nullable Bundle savedInstanceState ) {
57
41
super .onCreate (savedInstanceState );
58
- setContentView ( R . layout . activity_anonymous_upgrade );
59
- ButterKnife . bind ( this );
42
+ mBinding = ActivityAnonymousUpgradeBinding . inflate ( getLayoutInflater () );
43
+ setContentView ( mBinding . getRoot () );
60
44
61
45
updateUI ();
62
46
@@ -67,9 +51,36 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
67
51
handleSignInResult (RC_SIGN_IN , ErrorCodes .ANONYMOUS_UPGRADE_MERGE_CONFLICT ,
68
52
getIntent ());
69
53
}
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
+ });
70
82
}
71
83
72
- @ OnClick (R .id .anon_sign_in )
73
84
public void signInAnonymously () {
74
85
FirebaseAuth .getInstance ().signInAnonymously ()
75
86
.addOnCompleteListener (this , new OnCompleteListener <AuthResult >() {
@@ -87,7 +98,6 @@ public void onComplete(@NonNull Task<AuthResult> task) {
87
98
});
88
99
}
89
100
90
- @ OnClick (R .id .begin_flow )
91
101
public void startAuthUI () {
92
102
List <AuthUI .IdpConfig > providers = ConfigurationUtils .getConfiguredProviders (this );
93
103
Intent intent = AuthUI .getInstance ().createSignInIntentBuilder ()
@@ -98,7 +108,6 @@ public void startAuthUI() {
98
108
startActivityForResult (intent , RC_SIGN_IN );
99
109
}
100
110
101
- @ OnClick (R .id .resolve_merge )
102
111
public void resolveMerge () {
103
112
if (mPendingCredential == null ) {
104
113
Toast .makeText (this , "Nothing to resolve." , Toast .LENGTH_SHORT ).show ();
@@ -125,7 +134,6 @@ public void onComplete(@NonNull Task<AuthResult> task) {
125
134
});
126
135
}
127
136
128
- @ OnClick (R .id .sign_out )
129
137
public void signOut () {
130
138
AuthUI .getInstance ().signOut (this )
131
139
.addOnCompleteListener (new OnCompleteListener <Void >() {
@@ -156,7 +164,7 @@ private void handleSignInResult(int requestCode, int resultCode, Intent data) {
156
164
} else if (response .getError ().getErrorCode () == ErrorCodes
157
165
.ANONYMOUS_UPGRADE_MERGE_CONFLICT ) {
158
166
setStatus ("Merge conflict: user already exists." );
159
- mResolveMergeButton .setEnabled (true );
167
+ mBinding . resolveMerge .setEnabled (true );
160
168
mPendingCredential = response .getCredentialForLinking ();
161
169
} else {
162
170
Toast .makeText (this , "Auth error, see logs" , Toast .LENGTH_SHORT ).show ();
@@ -172,33 +180,33 @@ private void updateUI() {
172
180
173
181
if (currentUser == null ) {
174
182
// 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 );
179
187
} else if (mPendingCredential == null && currentUser .isAnonymous ()) {
180
188
// 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 );
185
193
} else if (mPendingCredential == null && !currentUser .isAnonymous ()) {
186
194
// 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 );
191
199
} else if (mPendingCredential != null ) {
192
200
// 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 );
197
205
}
198
206
}
199
207
200
208
private void setStatus (String message ) {
201
- mStatus .setText (message );
209
+ mBinding . statusText .setText (message );
202
210
}
203
211
204
212
private String getUserIdentifier (FirebaseUser user ) {
0 commit comments