Skip to content

Repository files navigation

AndroidUtils

A comprehensive utility library for Android developers that provides a wide range of helper methods to simplify common Android development tasks.

Overview

AndroidUtils is a collection of static utility methods that cover various aspects of Android development, including UI operations, network handling, date & time formatting, permission management, file operations, validation, security, image processing, device information, and intent handling.

Features

  • UI Utilities: Methods for keyboard management, toast messages, and screen metrics conversion
  • Network Utilities: Check network connectivity and open system settings
  • Date & Time Utilities: Format and parse dates, get time differences
  • Permission Utilities: Check, request, and handle runtime permissions
  • File Utilities: External storage operations and bitmap saving
  • Validation Utilities: Validate emails, phone numbers, URLs, and passwords
  • Security Utilities: Generate MD5/SHA-256 hashes, Base64 encoding/decoding, and UUID generation
  • Image Utilities: Convert between bitmaps and Base64, resize images
  • Device Utilities: Get device information and check Android version
  • Intent Utilities: Open URLs, send emails, dial numbers, share text, and open maps

Installation

Step 1. Add JitPack repository

Add it in your root settings.gradle at the end of repositories:

dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}

Step 2. Add the dependency

Add the following to your app's build.gradle file:

dependencies {
implementation 'com.github.RedAlpha1:Android-Extension-Lib:Tag'
}

Note: Replace 'Tag' with the actual release version (e.g., 'v1.0.0').

Usage

UI Utilities

// Hide keyboardAndroidUtils.hideKeyboard(activity);
// Show toastAndroidUtils.showToast(context, "Message", Toast.LENGTH_SHORT);
// Convert dp to pixelsintpixels = AndroidUtils.dpToPx(context, 16);
// Get screen dimensionsintwidth = AndroidUtils.getScreenWidth(context);
intheight = AndroidUtils.getScreenHeight(context);

Network Utilities

// Check if network is availableif (AndroidUtils.isNetworkAvailable(context)) {
// Perform network operation
} else {
// Show offline message
}
// Open network settingsAndroidUtils.openNetworkSettings(context);

Date & Time Utilities

// Format dateStringformattedDate = AndroidUtils.formatDate(newDate(), "yyyy-MM-dd");
// Parse dateDatedate = AndroidUtils.parseDate("2023-01-01", "yyyy-MM-dd");
// Get current date/timeStringnow = AndroidUtils.getCurrentDateTime("HH:mm:ss");
// Get time differencelongdaysDiff = AndroidUtils.getDateDiff(startDate, endDate, TimeUnit.DAYS);

Permission Utilities

// Check permissionif (AndroidUtils.isPermissionGranted(context, Manifest.permission.CAMERA)) {
// Permission already granted
} else {
// Request permissionAndroidUtils.requestPermissions(activity, newString[]{Manifest.permission.CAMERA}, REQUEST_CAMERA);
}
// Check if should show rationaleif (AndroidUtils.shouldShowRequestPermissionRationale(activity, Manifest.permission.CAMERA)) {
// Show rationale
}
// Open app settingsAndroidUtils.openAppSettings(context);

File Utilities

// Check if storage is availableif (AndroidUtils.isExternalStorageWritable()) {
// Save fileFiledirectory = AndroidUtils.getAppExternalFilesDir(context, null);
Filefile = newFile(directory, "image.jpg");
AndroidUtils.saveBitmapToFile(bitmap, file, Bitmap.CompressFormat.JPEG, 90);
}

Validation Utilities

// Validate emailif (AndroidUtils.isValidEmail("user@example.com")) {
// Valid email
}
// Validate phoneif (AndroidUtils.isValidPhone("+1234567890")) {
// Valid phone
}
// Validate URLif (AndroidUtils.isValidUrl("https://example.com")) {
// Valid URL
}
// Validate passwordif (AndroidUtils.isValidPassword("Password123!", 8, true, true, true, true)) {
// Valid password
}

Security Utilities

// Generate hashStringmd5Hash = AndroidUtils.md5("input string");
Stringsha256Hash = AndroidUtils.sha256("input string");
// Base64 encoding/decodingStringencoded = AndroidUtils.encodeBase64("text");
Stringdecoded = AndroidUtils.decodeBase64(encoded);
// Generate UUIDStringuuid = AndroidUtils.generateUuid();

Image Utilities

// Convert bitmap to Base64Stringbase64 = AndroidUtils.bitmapToBase64(bitmap, Bitmap.CompressFormat.JPEG, 90);
// Convert Base64 to bitmapBitmapbitmap = AndroidUtils.base64ToBitmap(base64);
// Resize bitmapBitmapresized = AndroidUtils.resizeBitmap(originalBitmap, 300, 200);

Device Utilities

// Get device informationStringmodel = AndroidUtils.getDeviceModel();
StringandroidVersion = AndroidUtils.getAndroidVersion();
intsdkVersion = AndroidUtils.getAndroidSdkVersion();
// Check Android versionif (AndroidUtils.isAndroid10OrHigher()) {
// Use Android 10+ specific API
}

Intent Utilities

// Open URLAndroidUtils.openUrl(context, "https://example.com");
// Send emailAndroidUtils.sendEmail(context, "recipient@example.com", "Subject", "Body");
// Dial phone numberAndroidUtils.dialPhoneNumber(context, "+1234567890");
// Share textAndroidUtils.shareText(context, "Share with", "Text to share");
// Open mapsAndroidUtils.openGoogleMaps(context, 37.7749, -122.4194, "San Francisco");

Requirements

  • Android API level 24 or higher
  • AndroidX

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages