Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add support for API 35 EdgeToEdge #2187

Open
wants to merge 12 commits into
base: version-9.1.0-dev
Choose a base branch
from
16 changes: 16 additions & 0 deletions app/src/main/java/com/firebase/uidemo/BaseActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.firebase.uidemo;

import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.view.WindowCompat;

public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// Enable edge-to-edge for all activities
WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
}
}
23 changes: 22 additions & 1 deletion app/src/main/java/com/firebase/uidemo/ChooserActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.core.view.WindowInsetsControllerCompat;

import com.firebase.ui.auth.AuthUI;
import com.firebase.ui.auth.util.ExtraConstants;
Expand All @@ -38,7 +43,7 @@
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

public class ChooserActivity extends AppCompatActivity {
public class ChooserActivity extends BaseActivity {
private ActivityChooserBinding mBinding;

@Override
Expand All @@ -56,6 +61,22 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
mBinding = ActivityChooserBinding.inflate(getLayoutInflater());
setContentView(mBinding.getRoot());

// Set up toolbar
setSupportActionBar(mBinding.toolbar);
getSupportActionBar().setTitle(R.string.app_name);

// Handle the navigation bar padding
ViewCompat.setOnApplyWindowInsetsListener(mBinding.activities, (view, windowInsets) -> {
Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.navigationBars());
view.setPadding(
view.getPaddingLeft(),
view.getPaddingTop(),
view.getPaddingRight(),
insets.bottom
);
return WindowInsetsCompat.CONSUMED;
});

mBinding.activities.setLayoutManager(new LinearLayoutManager(this));
mBinding.activities.setAdapter(new ActivityChooserAdapter());
mBinding.activities.setHasFixedSize(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import com.firebase.ui.auth.FirebaseAuthUIActivityResultContract;
import com.firebase.ui.auth.IdpResponse;
import com.firebase.ui.auth.data.model.FirebaseAuthUIAuthenticationResult;
import com.firebase.uidemo.BaseActivity;
import com.firebase.uidemo.R;
import com.firebase.uidemo.databinding.ActivityAnonymousUpgradeBinding;
import com.firebase.uidemo.util.ConfigurationUtils;
Expand All @@ -28,9 +29,8 @@
import androidx.activity.result.ActivityResultLauncher;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class AnonymousUpgradeActivity extends AppCompatActivity
public class AnonymousUpgradeActivity extends BaseActivity
implements ActivityResultCallback<FirebaseAuthUIAuthenticationResult> {

private static final String TAG = "AccountLink";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import com.firebase.ui.auth.data.model.FirebaseAuthUIAuthenticationResult;
import com.firebase.ui.auth.util.ExtraConstants;
import com.firebase.uidemo.R;
import com.firebase.uidemo.BaseActivity;
import com.firebase.uidemo.databinding.AuthUiLayoutBinding;
import com.firebase.uidemo.util.ConfigurationUtils;
import com.google.android.gms.common.Scopes;
Expand All @@ -54,7 +55,7 @@
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;

public class AuthUiActivity extends AppCompatActivity
public class AuthUiActivity extends BaseActivity
implements ActivityResultCallback<FirebaseAuthUIAuthenticationResult> {
private static final String TAG = "AuthUiActivity";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import com.firebase.ui.auth.AuthUI;
import com.firebase.ui.auth.IdpResponse;
import com.firebase.ui.auth.util.ExtraConstants;
import com.firebase.uidemo.BaseActivity;
import com.firebase.uidemo.R;
import com.firebase.uidemo.databinding.SignedInLayoutBinding;
import com.firebase.uidemo.storage.GlideApp;
Expand All @@ -49,11 +50,10 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.appcompat.app.AppCompatActivity;

import static com.firebase.ui.auth.AuthUI.EMAIL_LINK_PROVIDER;

public class SignedInActivity extends AppCompatActivity {
public class SignedInActivity extends BaseActivity {
private static final String TAG = "SignedInActivity";

private SignedInLayoutBinding mBinding;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import com.firebase.ui.auth.util.ui.ImeHelper;
import com.firebase.ui.firestore.FirestoreRecyclerAdapter;
import com.firebase.ui.firestore.FirestoreRecyclerOptions;
import com.firebase.uidemo.BaseActivity;
import com.firebase.uidemo.R;
import com.firebase.uidemo.database.ChatHolder;
import com.firebase.uidemo.databinding.ActivityChatBinding;
Expand All @@ -23,7 +24,6 @@

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

Expand All @@ -36,7 +36,7 @@
* Lists</a>.
*/
@SuppressLint("RestrictedApi")
public class FirestoreChatActivity extends AppCompatActivity
public class FirestoreChatActivity extends BaseActivity
implements FirebaseAuth.AuthStateListener {
private static final String TAG = "FirestoreChatActivity";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import com.firebase.ui.auth.util.ui.ImeHelper;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;
import com.firebase.uidemo.BaseActivity;
import com.firebase.uidemo.R;
import com.firebase.uidemo.database.ChatHolder;
import com.firebase.uidemo.databinding.ActivityChatBinding;
Expand All @@ -23,7 +24,6 @@

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

Expand All @@ -36,7 +36,7 @@
* Lists</a>.
*/
@SuppressLint("RestrictedApi")
public class RealtimeDbChatActivity extends AppCompatActivity
public class RealtimeDbChatActivity extends BaseActivity
implements FirebaseAuth.AuthStateListener {
private static final String TAG = "RealtimeDatabaseDemo";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import android.widget.Toast;

import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
import com.firebase.uidemo.BaseActivity;
import com.firebase.uidemo.BuildConfig;
import com.firebase.uidemo.R;
import com.firebase.uidemo.databinding.ActivityImageBinding;
Expand All @@ -27,12 +28,11 @@

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import pub.devrel.easypermissions.AfterPermissionGranted;
import pub.devrel.easypermissions.AppSettingsDialog;
import pub.devrel.easypermissions.EasyPermissions;

public class ImageActivity extends AppCompatActivity implements EasyPermissions.PermissionCallbacks {
public class ImageActivity extends BaseActivity implements EasyPermissions.PermissionCallbacks {

private static final String TAG = "ImageDemo";
private static final int RC_CHOOSE_PHOTO = 101;
Expand Down
115 changes: 60 additions & 55 deletions app/src/main/res/layout/activity_anonymous_upgrade.xml
Original file line number Diff line number Diff line change
@@ -1,67 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
android:orientation="vertical"
tools:context=".auth.AuthUiActivity">
android:fitsSystemWindows="true">

<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.MaterialComponents.Headline5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/title_anonymous_upgrade"
app:drawableTopCompat="@drawable/firebase_auth_120dp" />

<TextView
android:id="@+id/status_text"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:gravity="center"
android:textIsSelectable="true"
tools:text="This is the status view, sometimes it will have a very long status and other..." />
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp"
android:clipToPadding="false"
android:fitsSystemWindows="true">

<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.MaterialComponents.Headline5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/title_anonymous_upgrade"
app:drawableTopCompat="@drawable/firebase_auth_120dp" />

<TextView
android:id="@+id/status_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:gravity="center"
android:textIsSelectable="true"
tools:text="This is the status view, sometimes it will have a very long status and other..." />

<Button
android:id="@+id/anon_sign_in"
style="@style/Widget.MaterialComponents.Button"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/anonymous_sign_in" />

<Button
android:id="@+id/anon_sign_in"
style="@style/Widget.MaterialComponents.Button"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/anonymous_sign_in" />
<Button
android:id="@+id/begin_flow"
style="@style/Widget.MaterialComponents.Button"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/launch_auth_ui"
android:enabled="false" />

<Button
android:id="@+id/begin_flow"
style="@style/Widget.MaterialComponents.Button"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/launch_auth_ui"
android:enabled="false" />
<Button
android:id="@+id/resolve_merge"
style="@style/Widget.MaterialComponents.Button"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/resolve_merge_conflict"
android:enabled="false" />

<Button
android:id="@+id/resolve_merge"
style="@style/Widget.MaterialComponents.Button"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/resolve_merge_conflict"
android:enabled="false" />
<Button
android:id="@+id/sign_out"
style="@style/Widget.MaterialComponents.Button"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/sign_out"
android:enabled="false" />

<Button
android:id="@+id/sign_out"
style="@style/Widget.MaterialComponents.Button"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/sign_out"
android:enabled="false" />
</LinearLayout>

</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
Loading