diff --git a/app/src/main/java/com/firebase/uidemo/BaseActivity.java b/app/src/main/java/com/firebase/uidemo/BaseActivity.java new file mode 100644 index 000000000..72128ffa6 --- /dev/null +++ b/app/src/main/java/com/firebase/uidemo/BaseActivity.java @@ -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); + } +} diff --git a/app/src/main/java/com/firebase/uidemo/ChooserActivity.java b/app/src/main/java/com/firebase/uidemo/ChooserActivity.java index 4f7504299..d65f9afe5 100644 --- a/app/src/main/java/com/firebase/uidemo/ChooserActivity.java +++ b/app/src/main/java/com/firebase/uidemo/ChooserActivity.java @@ -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; @@ -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 @@ -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); diff --git a/app/src/main/java/com/firebase/uidemo/auth/AnonymousUpgradeActivity.java b/app/src/main/java/com/firebase/uidemo/auth/AnonymousUpgradeActivity.java index 4453c4cbd..71bb9f199 100644 --- a/app/src/main/java/com/firebase/uidemo/auth/AnonymousUpgradeActivity.java +++ b/app/src/main/java/com/firebase/uidemo/auth/AnonymousUpgradeActivity.java @@ -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; @@ -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 { private static final String TAG = "AccountLink"; diff --git a/app/src/main/java/com/firebase/uidemo/auth/AuthUiActivity.java b/app/src/main/java/com/firebase/uidemo/auth/AuthUiActivity.java index 0a8d44cd3..5b4d51331 100644 --- a/app/src/main/java/com/firebase/uidemo/auth/AuthUiActivity.java +++ b/app/src/main/java/com/firebase/uidemo/auth/AuthUiActivity.java @@ -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; @@ -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 { private static final String TAG = "AuthUiActivity"; diff --git a/app/src/main/java/com/firebase/uidemo/auth/SignedInActivity.java b/app/src/main/java/com/firebase/uidemo/auth/SignedInActivity.java index 9749f5c86..3a6268c02 100644 --- a/app/src/main/java/com/firebase/uidemo/auth/SignedInActivity.java +++ b/app/src/main/java/com/firebase/uidemo/auth/SignedInActivity.java @@ -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; @@ -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; diff --git a/app/src/main/java/com/firebase/uidemo/database/firestore/FirestoreChatActivity.java b/app/src/main/java/com/firebase/uidemo/database/firestore/FirestoreChatActivity.java index 59af0408b..ed4dedb76 100644 --- a/app/src/main/java/com/firebase/uidemo/database/firestore/FirestoreChatActivity.java +++ b/app/src/main/java/com/firebase/uidemo/database/firestore/FirestoreChatActivity.java @@ -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; @@ -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; @@ -36,7 +36,7 @@ * Lists. */ @SuppressLint("RestrictedApi") -public class FirestoreChatActivity extends AppCompatActivity +public class FirestoreChatActivity extends BaseActivity implements FirebaseAuth.AuthStateListener { private static final String TAG = "FirestoreChatActivity"; diff --git a/app/src/main/java/com/firebase/uidemo/database/realtime/RealtimeDbChatActivity.java b/app/src/main/java/com/firebase/uidemo/database/realtime/RealtimeDbChatActivity.java index 381893f7c..797e9bb6b 100644 --- a/app/src/main/java/com/firebase/uidemo/database/realtime/RealtimeDbChatActivity.java +++ b/app/src/main/java/com/firebase/uidemo/database/realtime/RealtimeDbChatActivity.java @@ -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; @@ -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; @@ -36,7 +36,7 @@ * Lists. */ @SuppressLint("RestrictedApi") -public class RealtimeDbChatActivity extends AppCompatActivity +public class RealtimeDbChatActivity extends BaseActivity implements FirebaseAuth.AuthStateListener { private static final String TAG = "RealtimeDatabaseDemo"; diff --git a/app/src/main/java/com/firebase/uidemo/storage/ImageActivity.java b/app/src/main/java/com/firebase/uidemo/storage/ImageActivity.java index bf2f57a80..82cc7ff1d 100644 --- a/app/src/main/java/com/firebase/uidemo/storage/ImageActivity.java +++ b/app/src/main/java/com/firebase/uidemo/storage/ImageActivity.java @@ -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; @@ -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; diff --git a/app/src/main/res/layout/activity_anonymous_upgrade.xml b/app/src/main/res/layout/activity_anonymous_upgrade.xml index 2677a1c71..946dfaf4b 100644 --- a/app/src/main/res/layout/activity_anonymous_upgrade.xml +++ b/app/src/main/res/layout/activity_anonymous_upgrade.xml @@ -1,67 +1,72 @@ - + android:fitsSystemWindows="true"> - - - + android:layout_height="match_parent" + android:orientation="vertical" + android:padding="16dp" + android:clipToPadding="false" + android:fitsSystemWindows="true"> + + + + + +