Skip to content

Commit

Permalink
Implemented Splash screen, made project structure modularized for sca…
Browse files Browse the repository at this point in the history
…ling, Showing prompt when the location service is not enabled, Formatted README.md, Added alter text when there is no spot added, Improved project structure
  • Loading branch information
HarshPanchal18 committed Feb 13, 2024
1 parent 40ce1db commit a3d4751
Show file tree
Hide file tree
Showing 14 changed files with 559 additions and 3,465 deletions.
40 changes: 38 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# Geofence-Profile
# Tradow (Track Shadow) - Automate Phone Mode Based on Location <img align="right" src="app/src/main/ic_launcher-playstore.png" width=125 height=125 style ="padding:4px" alt="App Logo">

A demo android app, explains (my version of) geofencing, which can automatically put your phone in Vibrate Mode/ General Mode, depending on your presence in the geofence area
<!-- References
https://www.darrylbayliss.net/jetpack-compose-for-maps/
https://github.com/barmangolap15/Get-current-location-using-google-api-and-places-api/blob/master/app/src/main/AndroidManifest.xml
Expand All @@ -10,3 +9,40 @@ https://github.com/7kashif/WeatherCast/blob/master/local.properties
APIs
AIzaSyDld3KTpWgb4o95IlG7-HFJw-Y096C7g4I
-->

## Description:
Take control of your phone's mode seamlessly with **Tradow**! This innovative app leverages geofencing technology to automatically switch your phone to Vibrate Mode when you enter designated areas, ensuring peace and focus.
Enjoy the convenience of having your phone adapt to your surroundings without manual adjustments.

## Features:
* `Customizable Geofences`: Create and manage multiple geofences around locations like your workplace, library, or classroom.
* `Automatic Mode Switching`: Set your phone to switch to Vibrate Mode upon entering a geofence and back to General Mode upon leaving.
* `Intuitive Interface`: Designate geofences and configure settings effortlessly with a user-friendly interface.
* `Battery-Efficient`: Tradow is optimized for minimal battery consumption, ensuring its presence without impacting your device's performance.
* `Privacy-Focused`: Your location data is used solely for geofence functionality and is never shared without your consent.

## Getting Started:
1. Download and install Tradow from the Release.
2. Tap the "+" button to add a new spot.
3. Fetch a location using the "Fill current address" button or manually input the address.
4. Save the geofence by pressing on "Add" button and repeat for other locations.
5. Enable Tradow and enjoy the automation!

## Snaps
| Home screen dark | Home screen | Add new spot |
|---------------------|---------------------------|------------------------|
| ![](snaps/Home.png) | ![](snaps/Home-Light.png) | ![](snaps/AddSpot.png) |

## Benefits:
* `Reduce Distractions`: Stay focused during important meetings, lectures, or study sessions without manually muting your phone.
* `Maintain Professionalism`: Avoid embarrassing notifications or ringtones in sensitive environments.
* `Simplify Your Routine`: Let Tradow handle your phone mode based on your location, freeing you from manual adjustments.
* `Minimize Battery Drain`: Automatic mode switching can help conserve battery by reducing unnecessary notifications and sounds.

## Additional Notes:
* This app requires location permissions to function correctly.
* We are committed to your privacy and data security.
* For feedback or suggestions, please contact us at ![LinkedIn](https://www.linkedin.com/in/harshpanchal18/).

## Feedback
* I welcome all user feedback and suggestions to continuously improve the app and optimize the utilization of geofencing for an enhanced user experience.
3 changes: 3 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@ dependencies {
implementation("androidx.compose.material3:material3")
implementation("androidx.compose.material:material-icons-extended")

implementation("androidx.navigation:navigation-compose:2.7.7")
implementation("androidx.navigation:navigation-runtime-ktx:2.7.7")

testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
Expand Down
1 change: 1 addition & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
<activity
android:name=".MainActivity"
android:exported="true"
android:screenOrientation="locked"
android:theme="@style/Theme.Geofencing">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
Expand Down
450 changes: 88 additions & 362 deletions app/src/main/java/com/example/geofencing/MainActivity.kt

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ class BackgroundService : Service(), GoogleApiClient.ConnectionCallbacks,
)
val notification = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
Notification.Builder(this, CHANNEL_ID)
.setContentTitle("Background service is active")
.setContentTitle("Tradow monitoring is active")
.setContentText("Tap to return")
.setSmallIcon(R.drawable.ic_launcher_background)
.setContentIntent(pendingIntent)
Expand Down
6 changes: 6 additions & 0 deletions app/src/main/java/com/example/geofencing/ui/Screens.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.example.geofencing.ui

object Screens {
const val Splash = "Splash"
const val Home = "Home"
}
Loading

0 comments on commit a3d4751

Please sign in to comment.