INPSAndroid Library Documentation
A clean, comprehensive, utility-heavy Android toolkit simplifying UI behaviors, network handling, classical encryption, local storage, custom layouts, and array mutations. Built to scale your application development process seamlessly.
Select a component to begin
Execute handlers, run delays, and pass arguments cleanly over UI thread contexts.
Perform advanced email domain filters, drawable matches, space/symbol analysis.
Automated local SQLite wrappers utilizing flat key-value definitions without complex syntax.
Adaptive, highly dynamic buttons, edits, and layouts with customizable corner radius levels.
Actions
Utility class for building and executing Runnable actions on the main thread, with support for arguments and delays.
Constructors & Class definition
Class path: com.isaiahnoelpulidosalazar.inpsAndroid.Actions
Methods
Sets an argument payload that can be pulled inside the built Runnable instance. Supports fluent chaining.
Returns the payload argument. Must be cast to the expected object reference type.
Assigns the action target statement block which triggers upon execution. Chainable.
Posts the defined Runnable callback directly into Android's main loop queue.
Executes the task after a set duration. The parameter delay accepts values in milliseconds.
Usage Example
.setArg("Hello from inside action thread!")
.build(() -> {
String msg = (String) action.getArg();
Log.d("TAG", msg);
});
action.executeDelayed(1500); // runs on main thread after 1.5 seconds
Check
Utility class for email schema evaluation, image comparison, string composition tests, and duration calculations.
Static Methods
Returns true if a drawable asset corresponds exactly with the pixels of a compared Bitmap instance.
Evaluates if the string argument is loaded with special character patterns (e.g. ~`!@#$%).
Scans if the sequence contains numeric parameters (digits 0-9).
Determines if whitespace spacing exists anywhere inside the evaluated string.
Computes precise mathematical time values remaining between the two target timestamps.
Nested Class: Check.Email
Supports full-domain filter mode (comparing entire domains like gmail.com) or split-domain filter mode (separately analyzing name segments and dot extensions).
Check.Email.addValidDomainName("gmail");
Check.Email.addValidDomainExtension("com");
boolean ok = Check.Email.isValid("[email protected]"); // true
// Full Domain Mode configuration
Check.Email.addValidDomain("company.org");
Check.Email.shouldUseFullDomain(true);
boolean matches = Check.Email.isValid("[email protected]"); // true
Cipher
Classic encryption algorithms operating over uppercase letters, preserving punctuation and space formats.
Supported Ciphers
Strips space sequences and maps character indices dynamically through alternating even-odd split blocks.
Moves letter registers forward or backward along index bounds based on a positive shift value.
Substitutes the core alphabet based on a unique pattern created from an un-duplicated keyword.
An advanced keyword substitution variant that adds an alphabet-shifting offset derived from a reference key character.
Usage Example
String step1 = Cipher.caesarCipher(original, 3); // "KHOORZRUog"
String step2 = Cipher.keywordCipher(original, "MYKEY");
Convert
Utility class supporting safe type casts, Base64 conversion, string capitalization, and date formatting.
Methods
Capitalizes the first character of the string while leaving the remaining letters unchanged.
Converts a standard text sequence into a Base64-encoded string representation using UTF-8 formatting.
Decodes a Base64-encoded string. Safe; prints stack trace and returns null if decoding fails.
Safe primitive conversion parsing functions. On numeric format exceptions, returns 0 without crashing.
Legacy Date format conversion methods. Marked as deprecated due to dependencies on outdated java.util.Date components.
EasySQL
Lightweight wrapper around SQLiteDatabase to interact with local databases without SQL boilerplate, using a colon-separated payload structure.
Setup & Schema syntax
Instead of manual queries, columns are expressed as "name:TYPE" strings. Input records follow a similar "column:value" pattern.
String[] columns = {"id:INTEGER PRIMARY KEY", "name:TEXT", "score:REAL"};
db.createTable("game_db", "scores", columns);
Methods
Creates a new table using structured array definitions if it does not already exist.
Returns true if the specified table exists in the database file, verified by executing an internal raw query test.
Inserts a single row of values. Each value element is formatted as "column:value". Allows values that contain nested colons.
Deletes matching records using a single key pair string (e.g. "id:5"). Automatically detects and formats type syntax differences for text values.
Retrieves all table records as a flat collection of "column:value" strings. Automatically formats text fields with enclosing single quotes.
Reads rows individually, returning them as mapped string array elements representing each database column.
FlippableImageView
Custom Android ImageView layout supporting smooth horizontal card-flip actions, complete with angle transitions along the Y-axis.
Constructors
Enumeration: FlippableImageView.Speed
Adjusts the number of rotation degrees rendered per animation frame:
SLOW: Rotates 5 degrees per frame.NORMAL: Rotates 15 degrees per frame.FAST: Rotates 30 degrees per frame.
Methods
Assigns the active front layout asset from drawables.
Assigns the back layout image. If reverseBackImage is active, the image is mirrored horizontally on load.
Sets whether the back image is mirrored. Reassign the back image asset after modifying this flag to apply changes.
Instantly alternates the view between 0° and 180° rotation states without animation.
Starts a smooth, progressive flip transition. Swaps the visible bitmap as the rotation passes the 90° threshold.
Fullscreen
Utility class to quickly toggle sticky immersive full-screen display environments inside an Android Activity.
Static Methods
Hides the status bar, bottom navigation bar, and applies sticky immersive flags. Automatically hides the SupportActionBar if present.
Resets layout visibility flags back to default visible conditions and restores the visibility of the SupportActionBar.
Setup Hook
protected void onResume() {
super.onResume();
Fullscreen.enable(this);
}
Memory<GenericType>
An alternative array-backed storage container. Copies and shrinks the internal array on mutation to manage small, dynamic data segments.
API Interfaces
Appends the element by resizing and copying the underlying storage array.
Checks for element equality using the object's equals() logic.
Finds and removes the first matching occurrence of the object, then shrinks the backing array.
Removes the item at the specified index, shifting all trailing elements to the left.
Standard accessors and clearing routines to handle storage operations.
RoundedAlertDialog
Fluent builder-style wrapper around AlertDialog to display rounded, fully customizable dialog overlays with optional scrollable container content.
Configuration Pipeline
Inflated using R.layout.rounded_alert_dialog_layout. Requires a transparent window background (applied automatically in show()) to properly display the rounded card background.
.setTitle("Confirm Action")
.setupLeftButton("Cancel", Color.GRAY)
.setupRightButton("Apply", Color.BLUE)
.setupLeftButtonOnClick(v -> dialog.hide())
.setupRightButtonOnClick(v -> processData());
dialog.show();
Methods
Embeds a custom child view into the dialog's scrollable container area, updating its visibility to VISIBLE.
Displays action buttons at the bottom of the dialog with optional text color parameters.
Generates and displays the dialog, or hides and dismisses the visible overlay window.
Rounded UI Components
Custom Android views with configurable corner radiuses and color-calculated ripple effects.
Custom button that calculates background luminance and applies a high-contrast ripple color.
Translucent rounded text entry view with customizable corner bounds.
Linear container with rounded corner options and support for background opacity toggles.
Constraint-based parent container featuring customizable rounded card style designs.
XML Configuration Example
android:id="@+id/btn_action"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cornerRadius="16dp"
app:isTranslucent="true" />
SimpleList
A simplified vertical RecyclerView subclass that maps list arrays directly to actionable buttons with click and long-click listeners.
Integration Pipeline
list.addItem("Launch Server");
list.addItem("Database Backup");
list.setOnItemClickListener(position -> {
String task = list.getData().get(position);
Toast.makeText(context, "Clicked: " + task, Toast.LENGTH_SHORT).show();
});
Methods
Mutates the list data. Automatically triggers an internal adapter refresh to update UI bounds.
Applies uniform item padding (in DP) to all four edges of the list element buttons.
Sets custom, independent padding values (in DP) for each edge of the list buttons.
Sort
Utility class containing 18 high-performance sorting algorithm implementations optimized for int[] and double[] arrays.
Available Algorithms
In-place with early-exit swap optimization.
Bidirectional sorting pass optimization.
Selection passes that prevent self-swaps.
Shell sort utilizing Knuth's gap sequences.
Fast in-place sort using a copied array.
Merge sort utilizing single-allocation helper arrays.
Switches to Heap Sort when recursion depth limits are hit.
Features memory limits and non-negative checks.
Sorts elements within the
[0.0, 1.0) range.
Fast sorting for dense value ranges.
Iterative BST traversal that prevents stack overflows.
Heap sorting optimization based on PileState.
URLRequest
Asynchronous HttpURLConnection engine backed by AsyncTask threads. Returns values to UI contexts via Actions wrappers.
AsyncTask implementation is deprecated in API 30+. It is recommended to migrate to ExecutorService handles or Kotlin coroutine constructs.
Methods
Configures the action block to execute on the main thread after receiving a response.
Returns the raw server response string or returns an "Error: <message>" formatted error string.
Triggers the network task using the specified parameters (e.g. "GET", "POST").
Implementation Pattern
request.build(() -> {
String response = (String) request.getDefaultActionArg();
if (!response.startsWith("Error:")) {
parseServerData(response);
} else {
showNetworkError();
}
});
request.execute("https://api.example.com/v1/config", "GET");