AI resources

Configure fullscreen

To ensure the best SmartApp experience on Point Smart, we recommend displaying the interface in fullscreen mode, without the system navigation bar. This configuration must be done directly in your Android application code and included in the distributed APK.

Follow the steps below to implement fullscreen mode in your application.

Configure the AndroidManifest in your APK

Assign the fullscreen theme to each Activity that should be displayed in fullscreen — for example, the main activity and the rest of the screens in the flow:

xml

<activity
    android:name=".MainActivity"
    android:exported="true"
    android:theme="@style/Theme.Fullscreen">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

<activity
    android:name=".AnotherActivity"
    android:theme="@style/Theme.Fullscreen" />

Define your fullscreen theme

In your app styles file (for example res/values/themes.xml), add a style that hides the title bar and enables fullscreen mode:

xml

<style name="Theme.Fullscreen" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    <!-- No ActionBar -->
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <!-- Fullscreen -->
    <item name="android:windowFullscreen">true</item>
</style>

Hide the system UI

The bottom navigation bar stays hidden only while the user navigates inside your SmartApp. When moving to the checkout screen (Mercado Pago’s native payments app), the system will show the bar again automatically.

To hide the system bars while navigating in the SmartApp, implement immersive UI logic in a base class (BaseActivity) and make each Activity in the project extend it. This ensures consistent behavior across the flow.

In the example below, immersive mode is re-applied when the window regains focus (for example, after returning from another system screen).

import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity

open class BaseActivity : AppCompatActivity() {

    override fun onWindowFocusChanged(hasFocus: Boolean) {
        super.onWindowFocusChanged(hasFocus)
        if (hasFocus) hideSystemUI()
    }

    @Suppress("DEPRECATION")
    private fun hideSystemUI() {
        window.decorView.systemUiVisibility = (
            View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                or View.SYSTEM_UI_FLAG_FULLSCREEN
                or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
        )
    }
}
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;

public class BaseActivity extends AppCompatActivity {

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        if (hasFocus) {
            hideSystemUI();
        }
    }

    @SuppressWarnings("deprecation")
    private void hideSystemUI() {
        getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
        );
    }
}
Recent Android versions
The SYSTEM_UI_FLAG_* flags are deprecated from API 30 onward, though they remain common in existing integrations. For new projects or when upgrading your compileSdk, we recommend reviewing the migration to WindowInsetsController in the Android documentation.

Next, make your screens extend BaseActivity instead of AppCompatActivity directly.

With the AndroidManifest, the Theme.Fullscreen theme, and inheritance from BaseActivity applied, your SmartApp fullscreen configuration will be ready. Simply build the APK and validate the behavior on the Point Smart terminal.