Skip to content

Maxitendo1/Maxitendo-Commons

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Maxitendo Commons


API Kotlin material


Maxitendo Commons is a comprehensive Android library providing common functionality for Special Contacts, including UI components, utilities, and shared resources.

✨ Features

πŸ—οΈ Core Architecture

  • BaseSimpleActivity: Foundation activity with lifecycle management, theming, and common functionality
  • Activity Suite: Pre-built activities (About, Settings, Privacy Policy, FAQ, Customization)
  • Configuration System: Centralized app configuration with SharedPreferences integration
  • Permission Manager: Streamlined runtime permission handling with callbacks
  • File System Integration: Advanced file operations with SAF (Storage Access Framework) support

🎨 UI & Theming

  • Material You Integration: Dynamic theming with system color extraction
  • Custom Theme Engine: 24 app icon variations with color customization
  • Dialog Components: Rich dialog library (IconList, RadioGroup, Confirmation, etc.)
  • FastScroller: High-performance list scrolling with alphabet indexing
  • Gesture Views: Advanced touch handling for images and interactive content
  • Compose Integration: Modern Jetpack Compose components with Material 3

πŸ“± User Experience

  • Biometric Authentication: Fingerprint and face unlock with fallback patterns
  • Pattern Lock: Custom pattern-based security with visual feedback
  • Accessibility Support: Full screen reader and navigation support
  • RTL Language Support: Complete right-to-left language compatibility
  • Font Scaling: Adaptive text sizing for accessibility needs
  • Dark/Light Themes: System-aware theme switching with custom variants

πŸ”§ Developer Tools

  • Kotlin Extensions: 200+ extension functions for common operations
  • Database Utilities: Room database helpers with migration support
  • Image Processing: Glide integration with caching and transformations
  • Network Helpers: HTTP utilities with error handling
  • Logging System: Structured logging with debug/release configurations
  • Testing Utilities: Mock helpers and test fixtures

πŸ“¦ Integrated Libraries

  • Locally Integrated: No external dependencies for core functionality
  • IndicatorFastScroll: Enhanced RecyclerView scrolling performance
  • SwipeActionView: Swipe gesture actions with Material animations
  • GestureViews: Zoom, pan, and rotation for images and content
  • Pattern Lock View: Secure pattern-based authentication
  • Reprint: Biometric authentication with comprehensive fallback support

πŸ’» Integration

Gradle Dependency

Add JitPack Repository

Add to your project's settings.gradle.kts:

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven { setUrl("https://jitpack.io") }
    }
}

Add Dependencies

Add to your app's build.gradle.kts:

dependencies {
    // Maxitendo Commons (All UI libraries integrated locally)
    implementation("com.github.Maxitendo1.Maxitendo-Commons:commons:d8bb080")
    implementation("com.github.Maxitendo1.Maxitendo-Commons:strings:d8bb080")
}

Version Catalog (Recommended)

Add to your gradle/libs.versions.toml:

[versions]
maxitendo-commons = "d8bb080"

[libraries]
maxitendo-commons = { module = "com.github.Maxitendo1.Maxitendo-Commons:commons", version.ref = "maxitendo-commons" }
maxitendo-strings = { module = "com.github.Maxitendo1.Maxitendo-Commons:strings", version.ref = "maxitendo-commons" }

Then in your build.gradle.kts:

dependencies {
    implementation(libs.maxitendo.commons)
    implementation(libs.maxitendo.strings)
}

πŸ“š Tech Stack & Requirements

Requirements

  • Minimum SDK: Android API 21+
  • Kotlin: 2.1.0+
  • Android Gradle Plugin: 8.5.2+
  • Jetpack Compose: Latest stable
  • Material Design 3: Full support

Dependencies

  • AndroidX Libraries: Core, AppCompat, Lifecycle, Room
  • Jetpack Compose: UI toolkit with Material 3
  • Kotlin Coroutines: Asynchronous programming
  • Material Components: Material Design components
  • Glide: Image loading and caching
  • Room Database: Local data persistence
  • Biometric: Fingerprint and face authentication

🌟 Contributing

We welcome contributions to Maxitendo Commons! Here's how you can help:

Reporting an issue or suggesting a feature

  1. This repository is for bugs and suggestions that affect Maxitendo Commons or multiple apps. For issues affecting only one app, use its separate repository.
  2. If you are reporting a bug, provide clear steps to reproduce it. Be sure to mention your app version, device model, and OS version.
  3. Ensure you're using the latest app version and have read the in-app FAQ before reporting.
  4. Search first! Check if the issue has already been reported by searching with relevant keywords.
  5. If a feature request already exists, add a "πŸ‘" to show your support. Avoid comments like +1 or I need this too!, as they do not add useful information.
  6. If a bug is already reported and has the needs triage or device/software specific labels, feel free to add a comment with your device model and OS version.
  7. Please write all reports in English. Reports in other languages will be closed.

Development Setup

git clone https://github.com/Maxitendo1/Maxitendo-Commons.git
cd Maxitendo-Commons
./gradlew commons:build

Contributing code

  1. Issue first

    • Before starting work, confirm there is an open issue for the task and that it is not tagged needs triage.
    • Exceptions: Critical, unclassified production-blocking bugs. Trivial changes, such as typos or broken links.
  2. Code style & formatting

    • Always format code and optimize imports.
    • Follow existing naming and style conventions. Don't introduce a new style.
    • Prefix any new icon with ic_, use white vector drawables.
    • Always use braces, even for one-line if, return, or continue statements.
  3. Commit messages

  4. Theming & accessibility testing

    • Test UI changes on all themes (Light, Dark, Black & White, System default on Android 12+) and with the largest system font size.
  5. CI and quality gates

    • Ensure all CI checks pass (build, tests, lint, detekt, etc.) on your pull request.
  6. Completeness & readiness

    • PRs must be well-researched, thoroughly tested, and production-ready.
    • No bare-bones or speculative PRs.
  7. Build configuration

    • Changes to build configuration, dependencies, or target SDK versions require explicit prior approval.

Note: Most pull requests will be squash merged unless they contain atomic changes worth preserving.

Contributing translations

The best and preferred way to contribute translations is via Weblate.

If you prefer to work directly on GitHub, you can follow the instructions below.

Click for GitHub translation instructions

Editing an existing language file

  1. Log in to GitHub and navigate to the target language file (e.g., app/src/main/res/values-es/strings.xml).
  2. Click the pencil icon to edit the file.
  3. Modify only the text between > and </string>. Do not change the name="..." attribute or any comments.
  4. Escape any apostrophes with a backslash (\').
  5. Add a clear commit message (e.g., "Update Spanish strings").
  6. Click Propose file change, then Create pull request.

Adding a new language file

  1. Log in to GitHub and navigate to app/src/main/res in the app's repository.
  2. Click Create new file.
  3. In the path box, type the folder path values-<language_code>/ (e.g., values-de/ for German).
  4. Name the file strings.xml.
  5. Copy the entire contents of the default app/src/main/res/values/strings.xml into your new file.
  6. Translate the strings, making sure to escape apostrophes (\').
  7. Add a clear commit message (e.g., "Add German translations").
  8. Press Propose new file, then Create pull request.

πŸ‘ Credits

Goodwy Commons

βš–οΈ License

Licensed under the GNU General Public License, Version 3.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

https://www.gnu.org/licenses/gpl-3.0.en.html

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
License for the specific language governing permissions and
limitations under the License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages