2017-01-12 20 views
1

Я использую FirebaseUI для входа. Я не могу заставить экран входа оставаться в режиме портрета независимо от того, что я пытаюсь. Что я здесь делаю неправильно? Я подозреваю, что это что-то в манифесте.Адрес для загрузки FirebaseUI

Интересно, что экран заставки остается на портрете и сразу переходит в ландшафтный режим. Я не могу найти ошибку, пожалуйста, помогите.

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.r3dm4n.abc"> 

<uses-permission android:name="android.permission.INTERNET" /> 

<application 
    android:name=".app.AppController" 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:configChanges="keyboardHidden|orientation" 
    android:screenOrientation="portrait" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".activities.MainActivity"> 
     <intent-filter> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:name=".activities.SignInActivity" 
     android:configChanges="keyboardHidden|orientation" 
     android:screenOrientation="portrait" 
     android:theme="@style/FirebaseLoginTheme"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

    </activity> 

    <meta-data 
     android:name="com.facebook.sdk.ApplicationId" 

     android:value="@string/facebook_app_id" /> 
    <meta-data 
     android:name="com.google.android.geo.API_KEY" 
     android:value="@string/google_maps_key" /> 


    <service android:name=".app.MyFirebaseMessagingService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.MESSAGING_EVENT" /> 
     </intent-filter> 

     <meta-data 
      android:name="com.google.firebase.messaging.default_notification_icon" 
      android:resource="@drawable/launch_logo" /> 
     <meta-data 
      android:name="com.google.firebase.messaging.default_notification_color" 
      android:resource="@color/colorPrimaryDark" /> 
    </service> 
</application> 
</manifest> 

FirebaseLoginTheme

<style name="FirebaseLoginTheme" parent="FirebaseUI"> 
    <item name="android:screenOrientation">portrait</item> 
    <item name="windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
    <item name="android:windowFullscreen">true</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowBackground">@drawable/login</item> 
    <item name="colorControlNormal">@color/colorWhite</item> 
    <item name="colorControlActivated">@color/colorWhite</item> 
    <item name="colorControlHighlight">@color/colorWhite</item> 
    <item name="android:textColor">@color/colorWhite</item> 

</style> 

Мои SignInActivty

общественного класса SignInActivity расширяет AppCompatActivity {

public static final int RC_SIGN_IN = 1337; 
private DatabaseReference mDatabase; 
private FirebaseAuth mAuth; 
private FirebaseAuth.AuthStateListener mAuthStateListener; 
private FirebaseUser firebaseUser; 
private AccessToken accessToken; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    mDatabase = FirebaseDatabase.getInstance().getReference(); 
    mDatabase.keepSynced(true); 

    mAuth = FirebaseAuth.getInstance(); 
    mAuthStateListener = new FirebaseAuth.AuthStateListener() { 
     @Override 
     public void onAuthStateChanged(@NonNull FirebaseAuth mAuth) { 
      firebaseUser = mAuth.getCurrentUser(); 
      if (firebaseUser != null) { 
       //signed in 
       Intent intent = new Intent(SignInActivity.this, MainActivity.class); 
       startActivity(intent); 

      } else { 
       //signed out 
       startActivityForResult(
         AuthUI.getInstance() 
           .createSignInIntentBuilder() 
           .setTheme(R.style.FirebaseLoginTheme) 
           .setLogo(R.drawable.firebaselogo) 
           .setProviders(Arrays.asList(
             new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build(), 
             new AuthUI.IdpConfig.Builder(AuthUI.FACEBOOK_PROVIDER).build(), 
             new AuthUI.IdpConfig.Builder(AuthUI.EMAIL_PROVIDER).build())) 
           .setIsSmartLockEnabled(false) 
           .build(), 
         RC_SIGN_IN); 
      } 
     } 
    }; 
} 


protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == RC_SIGN_IN) { 
     if (resultCode == RESULT_OK) { 
      startActivity(new Intent(this, MainActivity.class)); 
      firebaseUser = FirebaseAuth.getInstance().getCurrentUser(); 
      accessToken = AccessToken.getCurrentAccessToken(); 
      addToDatabase(); 
      finish(); 
      return; 
     } 

     // Sign in canceled 
     if (resultCode == RESULT_CANCELED) { 
      showSnackbar("Sign in is required to use this app."); 
      return; 
     } 

     // No network 
     if (resultCode == ResultCodes.RESULT_NO_NETWORK) { 
      showSnackbar("Conexiune internet inactiva"); 
      return; 
     } 
    } 
} 


@Override 
protected void onPause() { 
    super.onPause(); 
    mAuth.removeAuthStateListener(mAuthStateListener); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    mAuth.addAuthStateListener(mAuthStateListener); 
} 
} 
+1

@ style/FirebaseLoginTheme ?? –

+1

изменил его на AppTheme, все еще не портретный режим. Я отредактирую, чтобы добавить, как выглядит мой FirebaseLoginTheme. – r3dm4n

+1

удалить ненужное поле из FirebaseLoginTheme как android: screenOrientation –

ответ

1

Согласно this Github пост и this один, установка ориентации на FirebaseUI не представляется возможным ,