Skip to content

MindMaster is an Android app for reducing distractions, offering app and website blocking, notification control, and data management. It supports custom profiles, different schedules, and usage insights.

License

Notifications You must be signed in to change notification settings

ArmanKhanTech/MindMaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

MindMaster

Status: Completed

An Android productivity app.

Explore the docs »
Report a Bug · Request new Feature


Table of Contents
  1. About the Project
  2. Getting Started
  3. Usage
  4. Screenshots
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About the Project

MindMaster is an Android productivity app thats lets you do whats necessary by getting rid of all kinds of distractions.

Supports Android 10 & above only.

Built with

  • Java
  • Kotlin
  • Sqlite

Getting Started

Follow the below instructions to get started.

Prerequisites

  1. Android Studio

  2. Java 8+

  3. Kotlin 1.9+

Installation

  1. Clone this repository

    git clone https://github.com/ArmanKhanTech/MindMaster.git

Usage

MindMaster offers a comprehensive set of features to help you manage your digital well-being and stay focused on your tasks. Here's an overview of its key functionalities:

Blocking:

  1. Apps & Games: Block specific apps and games to prevent distractions and regain control over your time.
  2. Websites & Keywords: Block unwanted websites and keywords to minimize exposure to harmful content or unproductive browsing.
  3. Notifications: Silence notifications from distracting apps to maintain focus and avoid interruptions.

Data Access Control:

  1. Cellular & Wi-Fi: Restrict cellular or Wi-Fi data access per app or game to reduce data usage and prevent unwanted background activity.

Profiles & Schedules:

  1. Multiple Profiles: Create and manage different profiles for various use cases (e.g., work, study, leisure) with customized blocking settings.
  2. Flexible Schedules: Set up to different blocking schedules to automate app and website blocking during specific times of the day or week.

Usage Insights:

  1. Detailed Overview: Gain insights into your digital habits with comprehensive usage data for up to a year.
  2. Screen Time & Launch Count: Track the amount of time spent on apps and the number of times you launch them.
  3. Data Usage: Monitor data usage per app to identify areas for potential optimization.

Additional Features:

  1. Take-a-Break: Temporarily block all distractions for a set duration to focus on other tasks or simply take a mindful break.
  2. Blocking Modes: Choose from five blocking modes (Usage Limit, Specific Time Interval, Quick Block, Number of Launches & Fixed Block) to customize the intensity of your blocking experience.
  3. Normal & Strict Modes: Switch between Normal and Strict modes to adjust the overall level of blocking and access restrictions.
  4. Uninstall Protection: Prevent accidental uninstallation of MindMaster to ensure consistent protection against distractions.
  5. Password Protection: Secure your settings and preferences with a password to maintain control over your blocking configurations.

Supported Browsers:

MindMaster currently supports blocking for the following popular browsers:

  • Google Chrome
  • Mozilla Firefox
  • Opera
  • Opera Mini

But more browsers can be added at app/src/main/java/com/android/MindMaster/Service/LogURLService.java

private static List<SupportedBrowserConfig> getSupportedBrowsers() {
    List<SupportedBrowserConfig> browsers = new ArrayList<>();
    browsers.add(new SupportedBrowserConfig("com.android.chrome", "com.android.chrome:id/url_bar"));
    browsers.add(new SupportedBrowserConfig("org.mozilla.firefox", "org.mozilla.firefox:id/mozac_browser_toolbar_url_view"));
    browsers.add(new SupportedBrowserConfig("com.opera.browser", "com.opera.browser:id/url_field"));
    browsers.add(new SupportedBrowserConfig("com.opera.mini.native", "com.opera.mini.native:id/url_field"));
    /*
    Syntax: browsers.add(new SupportedBrowserConfig("browser_package_name", "browser_package_name:id/url_field"));
    */
    return browsers;
}

& at res/xml/accessibility_service.xml

<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
    android:accessibilityEventTypes="typeAllMask"
    android:accessibilityFeedbackType="feedbackAllMask"
    android:accessibilityFlags="flagDefault|flagIncludeNotImportantViews|flagRequestTouchExplorationMode|flagRequestEnhancedWebAccessibility|flagReportViewIds|flagRetrieveInteractiveWindows"
    android:canRequestFilterKeyEvents="true"
    android:canRetrieveWindowContent="true"
    android:notificationTimeout="0"
    android:description="@string/accessibility_service_description"
    android:packageNames="com.android.chrome, org.mozilla.firefox, com.opera.browser, com.opera.mini.native", "here..." />

Screenshots

Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

Don't forget to give the project a star!

Thanks again!

License

Distributed under the MIT License. See LICENSE.txt for more information.

Contact

Arman Khan - ak2341776@gmail.com

Project Link - https://github.com/ArmanKhanTech/MindMaster

Acknowledgments

3rd Party Libraries