Skip to content

Commit 8438c49

Browse files
SUPERCILEXsamtstern
authored andcommitted
Password visibility toggle fix (#349)
* Update dependencies * Update tests * Update test dependencies * Add workaround for password toggle * Update .travis.yml
1 parent 3ccbd66 commit 8438c49

21 files changed

+55
-55
lines changed

.travis.yml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,13 @@ android:
55
components:
66
- platform-tools
77
- tools
8-
- build-tools-23.0.3
9-
- android-23
8+
- build-tools-24.0.3
9+
- android-24
10+
11+
# Extras
1012
- extra-google-google_play_services
1113
- extra-google-m2repository
1214
- extra-android-m2repository
1315
- addon-google_apis-google-24
14-
licenses:
15-
- 'android-sdk-preview-license-52d11cd2'
16-
- 'android-sdk-license-.+'
17-
- 'google-gdk-license-.+'
1816
script:
1917
- ./gradlew clean :library:testAll :library:prepareArtifacts

auth/build.gradle

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,11 @@ android {
3131

3232
dependencies {
3333
testCompile 'junit:junit:4.12'
34-
testCompile 'org.mockito:mockito-core:1.10.19'
35-
testCompile "org.robolectric:robolectric:3.1.1"
36-
compile "com.android.support:appcompat-v7:${project.ext.support_library_version}"
34+
testCompile 'org.mockito:mockito-core:2.2.0'
35+
testCompile 'org.robolectric:robolectric:3.1.2'
36+
// See https://github.com/robolectric/robolectric/issues/1932#issuecomment-219796474
37+
testCompile 'org.khronos:opengl-api:gl1.1-android-2.1_r1'
38+
3739
compile 'com.facebook.android:facebook-android-sdk:4.14.1'
3840
compile "com.android.support:design:${project.ext.support_library_version}"
3941

auth/src/main/java/com/firebase/ui/auth/ui/account_link/WelcomeBackIDPPrompt.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,7 @@ protected void onCreate(Bundle savedInstanceState) {
9090
if (mIdpProvider == null) {
9191
getIntent().putExtra(
9292
ExtraConstants.EXTRA_ERROR_MESSAGE,
93-
"Firebase login successful. Account linking failed due to provider not "
94-
+ "enabled by application");
93+
"Firebase login successful. Account linking failed due to provider not enabled by application");
9594
finish(RESULT_CANCELED, getIntent());
9695
return;
9796
}

auth/src/main/java/com/firebase/ui/auth/ui/account_link/WelcomeBackPasswordPrompt.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ protected void onCreate(Bundle savedInstanceState) {
8181
TextView bodyTextView = ((TextView) findViewById(R.id.welcome_back_password_body));
8282
bodyTextView.setText(spannableStringBuilder);
8383

84+
((TextInputLayout) findViewById(R.id.password_layout)).setPasswordVisibilityToggleEnabled(false);
85+
8486
// Click listeners
8587
findViewById(R.id.button_done).setOnClickListener(this);
8688
findViewById(R.id.toggle_visibility).setOnClickListener(

auth/src/main/java/com/firebase/ui/auth/ui/email/ImageFocusTransparencyChanger.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,5 @@ public void onFocusChange(View v, boolean hasFocus) {
3939
} else {
4040
mTogglePasswordImage.setAlpha(mSlightlyVisible);
4141
}
42-
4342
}
4443
}

auth/src/main/java/com/firebase/ui/auth/ui/email/RegisterEmailActivity.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ public class RegisterEmailActivity extends AppCompatBase implements View.OnClick
6666
private EmailFieldValidator mEmailFieldValidator;
6767
private PasswordFieldValidator mPasswordFieldValidator;
6868
private RequiredFieldValidator mNameValidator;
69-
private ImageView mTogglePasswordImage;
7069

7170
@Override
7271
protected void onCreate(Bundle savedInstanceState) {
@@ -83,14 +82,15 @@ protected void onCreate(Bundle savedInstanceState) {
8382
getResources().getValue(R.dimen.slightly_visible_icon, slightlyVisibleIcon, true);
8483

8584
mPasswordEditText = (EditText) findViewById(R.id.password);
86-
mTogglePasswordImage = (ImageView) findViewById(R.id.toggle_visibility);
85+
((TextInputLayout) findViewById(R.id.password_layout)).setPasswordVisibilityToggleEnabled(false);
86+
ImageView togglePasswordImage = (ImageView) findViewById(R.id.toggle_visibility);
8787

8888
mPasswordEditText.setOnFocusChangeListener(new ImageFocusTransparencyChanger(
89-
mTogglePasswordImage,
89+
togglePasswordImage,
9090
visibleIcon.getFloat(),
9191
slightlyVisibleIcon.getFloat()));
9292

93-
mTogglePasswordImage.setOnClickListener(new PasswordToggler(mPasswordEditText));
93+
togglePasswordImage.setOnClickListener(new PasswordToggler(mPasswordEditText));
9494

9595
mNameEditText = (EditText) findViewById(R.id.name);
9696

auth/src/main/java/com/firebase/ui/auth/ui/email/SignInActivity.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ public class SignInActivity extends AppCompatBase implements View.OnClickListene
5050
private EditText mPasswordEditText;
5151
private EmailFieldValidator mEmailValidator;
5252
private RequiredFieldValidator mPasswordValidator;
53-
private ImageView mTogglePasswordImage;
5453

5554
@Override
5655
protected void onCreate(Bundle savedInstanceState) {
@@ -68,14 +67,15 @@ protected void onCreate(Bundle savedInstanceState) {
6867
getResources().getValue(R.dimen.slightly_visible_icon, slightlyVisibleIcon, true);
6968

7069
mPasswordEditText = (EditText) findViewById(R.id.password);
71-
mTogglePasswordImage = (ImageView) findViewById(R.id.toggle_visibility);
70+
((TextInputLayout) findViewById(R.id.password_layout)).setPasswordVisibilityToggleEnabled(false);
71+
ImageView togglePasswordImage = (ImageView) findViewById(R.id.toggle_visibility);
7272

7373
mPasswordEditText.setOnFocusChangeListener(new ImageFocusTransparencyChanger(
74-
mTogglePasswordImage,
74+
togglePasswordImage,
7575
visibleIcon.getFloat(),
7676
slightlyVisibleIcon.getFloat()));
7777

78-
mTogglePasswordImage.setOnClickListener(new PasswordToggler(mPasswordEditText));
78+
togglePasswordImage.setOnClickListener(new PasswordToggler(mPasswordEditText));
7979

8080
mEmailValidator = new EmailFieldValidator((TextInputLayout) findViewById(R.id
8181
.email_layout));

auth/src/main/res/layout/sign_in_layout.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
android:layout_height="wrap_content">
3535

3636
<EditText
37-
style="@style/FirebaseUI.EditText"
37+
style="@style/FirebaseUI.EditText.PasswordField"
3838
android:id="@+id/password"
3939
android:hint="@string/password_hint"
4040
/>

auth/src/main/res/layout/welcome_back_password_prompt_layout.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
android:layout_height="wrap_content">
2929

3030
<EditText
31-
style="@style/FirebaseUI.EditText"
31+
style="@style/FirebaseUI.EditText.PasswordField"
3232
android:id="@+id/password"
3333
android:hint="@string/password_hint"
3434
/>

auth/src/main/res/values/styles.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@
160160
<item name="android:inputType">textPassword</item>
161161
</style>
162162

163-
<style name="FirebaseUI.ImageView"></style>
163+
<style name="FirebaseUI.ImageView"/>
164164

165165
<style name="FirebaseUI.ImageView.VisibilityToggle">
166166
<item name="android:layout_marginBottom">12dp</item>

auth/src/test/java/com/firebase/ui/auth/AuthUITest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414

1515
package com.firebase.ui.auth;
1616

17-
import static junit.framework.Assert.assertEquals;
18-
1917
import android.content.Intent;
2018

2119
import com.firebase.ui.auth.test_helpers.CustomRobolectricGradleTestRunner;
@@ -31,8 +29,10 @@
3129
import org.robolectric.RuntimeEnvironment;
3230
import org.robolectric.annotation.Config;
3331

32+
import static junit.framework.Assert.assertEquals;
33+
3434
@RunWith(CustomRobolectricGradleTestRunner.class)
35-
@Config(constants = BuildConfig.class, sdk = 21)
35+
@Config(constants = BuildConfig.class, sdk = 23)
3636
public class AuthUITest {
3737
private FirebaseApp mFirebaseApp;
3838

auth/src/test/java/com/firebase/ui/auth/test_helpers/CustomRobolectricGradleTestRunner.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323
import com.firebase.ui.auth.util.FirebaseAuthWrapperImpl;
2424

2525
import org.junit.runners.model.InitializationError;
26-
import org.robolectric.RobolectricGradleTestRunner;
26+
import org.robolectric.RobolectricTestRunner;
2727
import org.robolectric.annotation.Config;
2828
import org.robolectric.internal.bytecode.InstrumentationConfiguration;
2929

30-
public class CustomRobolectricGradleTestRunner extends RobolectricGradleTestRunner {
30+
public class CustomRobolectricGradleTestRunner extends RobolectricTestRunner {
3131
public CustomRobolectricGradleTestRunner(Class<?> klass) throws InitializationError {
3232
super(klass);
3333
}

auth/src/test/java/com/firebase/ui/auth/ui/ChooseAccountActivityTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
import static org.mockito.Mockito.when;
5454

5555
@RunWith(CustomRobolectricGradleTestRunner.class)
56-
@Config(constants = BuildConfig.class, shadows = {ActivityHelperShadow.class}, sdk = 21)
56+
@Config(constants = BuildConfig.class, shadows = {ActivityHelperShadow.class}, sdk = 23)
5757
public class ChooseAccountActivityTest {
5858
private FirebaseApp mFirebaseApp;
5959
@Mock private CredentialsAPI mCredentialsAPI;

auth/src/test/java/com/firebase/ui/auth/ui/email/RecoverPasswordActivityTest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,14 @@
1414

1515
package com.firebase.ui.auth.ui.email;
1616

17-
import static junit.framework.Assert.assertEquals;
18-
import static org.mockito.Mockito.verify;
19-
import static org.mockito.Mockito.when;
20-
2117
import android.content.Intent;
2218
import android.widget.Button;
2319

20+
import com.firebase.ui.auth.BuildConfig;
21+
import com.firebase.ui.auth.R;
2422
import com.firebase.ui.auth.test_helpers.ActivityHelperShadow;
2523
import com.firebase.ui.auth.test_helpers.AutoCompleteTask;
26-
import com.firebase.ui.auth.BuildConfig;
2724
import com.firebase.ui.auth.test_helpers.CustomRobolectricGradleTestRunner;
28-
import com.firebase.ui.auth.R;
2925
import com.firebase.ui.auth.test_helpers.TestConstants;
3026
import com.firebase.ui.auth.test_helpers.TestHelper;
3127
import com.firebase.ui.auth.ui.ExtraConstants;
@@ -40,8 +36,12 @@
4036

4137
import java.util.Collections;
4238

39+
import static junit.framework.Assert.assertEquals;
40+
import static org.mockito.Mockito.verify;
41+
import static org.mockito.Mockito.when;
42+
4343
@RunWith(CustomRobolectricGradleTestRunner.class)
44-
@Config(constants = BuildConfig.class, sdk = 21)
44+
@Config(constants = BuildConfig.class, sdk = 23)
4545
public class RecoverPasswordActivityTest {
4646

4747
@Before

auth/src/test/java/com/firebase/ui/auth/ui/email/RegisterEmailActivityTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353

5454

5555
@RunWith(CustomRobolectricGradleTestRunner.class)
56-
@Config(constants = BuildConfig.class, sdk = 21)
56+
@Config(constants = BuildConfig.class, sdk = 23)
5757
public class RegisterEmailActivityTest {
5858

5959
private RegisterEmailActivity createActivity(String email) {

auth/src/test/java/com/firebase/ui/auth/ui/email/SignInActivityTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
import static org.mockito.Mockito.when;
5252

5353
@RunWith(CustomRobolectricGradleTestRunner.class)
54-
@Config(constants = BuildConfig.class, sdk = 21)
54+
@Config(constants = BuildConfig.class, sdk = 23)
5555
public class SignInActivityTest {
5656

5757
@Before

auth/src/test/java/com/firebase/ui/auth/ui/email/SignInNoPasswordActivityTest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,18 @@
1414

1515
package com.firebase.ui.auth.ui.email;
1616

17-
import static org.junit.Assert.assertEquals;
18-
import static org.mockito.Mockito.when;
19-
2017
import android.content.Intent;
2118
import android.support.design.widget.TextInputLayout;
2219
import android.widget.Button;
2320
import android.widget.EditText;
2421

25-
import com.firebase.ui.auth.test_helpers.ActivityHelperShadow;
2622
import com.firebase.ui.auth.AuthUI;
27-
import com.firebase.ui.auth.test_helpers.AutoCompleteTask;
2823
import com.firebase.ui.auth.BuildConfig;
24+
import com.firebase.ui.auth.R;
25+
import com.firebase.ui.auth.test_helpers.ActivityHelperShadow;
26+
import com.firebase.ui.auth.test_helpers.AutoCompleteTask;
2927
import com.firebase.ui.auth.test_helpers.CustomRobolectricGradleTestRunner;
3028
import com.firebase.ui.auth.test_helpers.FakeProviderQueryResult;
31-
import com.firebase.ui.auth.R;
3229
import com.firebase.ui.auth.test_helpers.TestConstants;
3330
import com.firebase.ui.auth.test_helpers.TestHelper;
3431
import com.firebase.ui.auth.ui.ExtraConstants;
@@ -47,9 +44,12 @@
4744
import java.util.Arrays;
4845
import java.util.Collections;
4946

47+
import static org.junit.Assert.assertEquals;
48+
import static org.mockito.Mockito.when;
49+
5050

5151
@RunWith(CustomRobolectricGradleTestRunner.class)
52-
@Config(constants = BuildConfig.class, sdk = 21)
52+
@Config(constants = BuildConfig.class, sdk = 23)
5353
public class SignInNoPasswordActivityTest {
5454
@Before
5555
public void setUp() {

auth/src/test/java/com/firebase/ui/auth/ui/idp/AuthMethodPickerActivityTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
GoogleProviderShadow.class,
6767
FacebookProviderShadow.class,
6868
LoginManagerShadow.class
69-
}, sdk = 21)
69+
}, sdk = 23)
7070
public class AuthMethodPickerActivityTest {
7171

7272
@Before

auth/src/test/java/com/firebase/ui/auth/ui/idp/CredentialSignInHandlerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666

6767

6868
@RunWith(CustomRobolectricGradleTestRunner.class)
69-
@Config(constants = BuildConfig.class, sdk = 21, shadows = {ActivityHelperShadow.class})
69+
@Config(constants = BuildConfig.class, sdk = 23, shadows = {ActivityHelperShadow.class})
7070
public class CredentialSignInHandlerTest {
7171
private static final int RC_ACCOUNT_LINK = 3;
7272
private static final int RC_SAVE_CREDENTIALS = 4;

auth/src/test/java/com/firebase/ui/auth/util/HeadlessAPIWrapperImplTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,16 @@
2424
import org.junit.runner.RunWith;
2525
import org.mockito.Mock;
2626
import org.mockito.MockitoAnnotations;
27-
import org.robolectric.RobolectricGradleTestRunner;
27+
import org.robolectric.RobolectricTestRunner;
2828
import org.robolectric.RuntimeEnvironment;
2929
import org.robolectric.annotation.Config;
3030

3131
import static junit.framework.Assert.assertFalse;
3232
import static junit.framework.Assert.assertTrue;
3333
import static org.mockito.Mockito.when;
3434

35-
@RunWith(RobolectricGradleTestRunner.class)
36-
@Config(constants = BuildConfig.class, sdk=23)
35+
@RunWith(RobolectricTestRunner.class)
36+
@Config(constants = BuildConfig.class, sdk = 23)
3737
public class HeadlessAPIWrapperImplTest {
3838

3939
private FirebaseAuthWrapperImpl mHeadlessAPIWrapperImpl;

common/constants.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
project.ext.firebase_version = '9.6.0'
2-
project.ext.support_library_version = '23.4.0'
1+
project.ext.firebase_version = '9.6.1'
2+
project.ext.support_library_version = '24.2.1'
33

44
project.ext.submodules = ['database', 'auth', 'storage']
55
project.ext.group = 'com.firebaseui'
66
project.ext.version = '0.6.0'
77
project.ext.pomdesc = 'Firebase UI Android'
8-
project.ext.buildtools = '23.0.3'
9-
project.ext.compileSdk = 23
10-
project.ext.targetSdk = 23
8+
project.ext.buildtools = '24.0.3'
9+
project.ext.compileSdk = 24
10+
project.ext.targetSdk = 24

0 commit comments

Comments
 (0)