FRRO Example
import android.content.om.FabricatedOverlay;
import android.content.om.OverlayManager;
import android.graphics.Color;
import android.os.RemoteException;
import android.util.Log;
public class FabricatedRROExample {
private static final String TAG = "FabricatedRROExample";
private static final String TARGET_PACKAGE = "com.android.systemui";
private static final String OVERLAY_NAME = "FabricatedThemeExample";
private static final String OVERLAY_PACKAGE = "com.example.fabricated.theme";
public static void createAndApplyFabricatedOverlay(OverlayManager overlayManager) {
try {
// Create a new FabricatedOverlay using the Builder
FabricatedOverlay overlay = new FabricatedOverlay.Builder(TARGET_PACKAGE, OVERLAY_NAME, OVERLAY_PACKAGE)
// Set color resources
.setResourceValue("color", "accent_color", Color.BLUE)
.setResourceValue("color", "primary_color", Color.CYAN)
.setResourceValue("color", "background_color", Color.WHITE)
// Set dimension resources
.setResourceValue("dimen", "status_bar_height", 40) // in dp
.setResourceValue("dimen", "quick_qs_total_height", 128) // in dp
// Set boolean resource
.setResourceValue("bool", "config_enableTranslucentDecor", true)
// Set string resource
.setResourceValue("string", "clock_12_hours_format", "h:mm a")
.build();
// Register the fabricated overlay
overlayManager.registerFabricatedOverlay(overlay);
Log.d(TAG, "Fabricated overlay registered successfully");
// Enable the overlay
overlayManager.setEnabled(OVERLAY_PACKAGE, true, 0);
Log.d(TAG, "Fabricated overlay enabled successfully");
} catch (RemoteException e) {
Log.e(TAG, "Error creating or applying fabricated overlay", e);
}
}
public static void removeFabricatedOverlay(OverlayManager overlayManager) {
try {
// Disable the overlay
overlayManager.setEnabled(OVERLAY_PACKAGE, false, 0);
Log.d(TAG, "Fabricated overlay disabled");
// Unregister the overlay
overlayManager.unregisterFabricatedOverlay(OVERLAY_PACKAGE);
Log.d(TAG, "Fabricated overlay unregistered successfully");
} catch (RemoteException e) {
Log.e(TAG, "Error removing fabricated overlay", e);
}
}
}Last updated