Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
5
5711403296
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Paded
5711403296
Commits
7959a8fa
Commit
7959a8fa
authored
7 years ago
by
Paded
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add notification
parent
b32a2165
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
344 additions
and
8 deletions
+344
-8
build_file_checksums.ser
.idea/caches/build_file_checksums.ser
+0
-0
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+2
-1
MainActivity.java
...ansitdriver/paded/com/ubontransitdriver/MainActivity.java
+0
-0
TrackerService.java
...sitdriver/paded/com/ubontransitdriver/TrackerService.java
+47
-4
TrackerService2.java
...itdriver/paded/com/ubontransitdriver/TrackerService2.java
+128
-0
TrackerService3.java
...itdriver/paded/com/ubontransitdriver/TrackerService3.java
+120
-0
bg_btn_activebus_clicked.xml
app/src/main/res/drawable/bg_btn_activebus_clicked.xml
+1
-1
bg_btn_activebus_normal.xml
app/src/main/res/drawable/bg_btn_activebus_normal.xml
+6
-1
bus_color_icon_red.xml
app/src/main/res/drawable/bus_color_icon_red.xml
+2
-1
ic_sort.xml
app/src/main/res/drawable/ic_sort.xml
+4
-0
ic_track_changes_green_24dp.xml
app/src/main/res/drawable/ic_track_changes_green_24dp.xml
+9
-0
ic_track_changes_white_24dp.xml
app/src/main/res/drawable/ic_track_changes_white_24dp.xml
+9
-0
icon_active_clicked.xml
app/src/main/res/drawable/icon_active_clicked.xml
+9
-0
text_active_color.xml
app/src/main/res/drawable/text_active_color.xml
+6
-0
main_layout.xml
app/src/main/res/layout/main_layout.xml
+0
-0
colors.xml
app/src/main/res/values/colors.xml
+1
-0
No files found.
.idea/caches/build_file_checksums.ser
View file @
7959a8fa
No preview for this file type
This diff is collapsed.
Click to expand it.
app/src/main/AndroidManifest.xml
View file @
7959a8fa
...
...
@@ -13,6 +13,7 @@
android:supportsRtl=
"true"
android:theme=
"@style/AppTheme"
>
<activity
android:launchMode=
"singleTop"
android:name=
".MainActivity"
android:windowSoftInputMode=
"adjustResize"
/>
<activity
...
...
@@ -34,7 +35,7 @@
<activity
android:name=
".AddBusActivity"
/>
<activity
android:name=
".ProfileSettingActivity"
></activity>
<service
android:name=
".TrackerService"
android:name=
".TrackerService
3
"
android:enabled=
"true"
android:exported=
"true"
></service>
</application>
...
...
This diff is collapsed.
Click to expand it.
app/src/main/java/ubontransitdriver/paded/com/ubontransitdriver/MainActivity.java
View file @
7959a8fa
This diff is collapsed.
Click to expand it.
app/src/main/java/ubontransitdriver/paded/com/ubontransitdriver/TrackerService.java
View file @
7959a8fa
...
...
@@ -9,13 +9,17 @@ import android.content.Intent;
import
android.content.IntentFilter
;
import
android.content.pm.PackageManager
;
import
android.location.Location
;
import
android.os.Handler
;
import
android.os.HandlerThread
;
import
android.os.IBinder
;
import
android.os.Looper
;
import
android.os.Message
;
import
android.support.annotation.Nullable
;
import
android.support.v4.app.NotificationCompat
;
import
android.support.v4.content.ContextCompat
;
import
android.util.Log
;
import
android.widget.Toast
;
import
android.os.Process
;
import
com.google.android.gms.location.FusedLocationProviderClient
;
import
com.google.android.gms.location.LocationCallback
;
import
com.google.android.gms.location.LocationRequest
;
...
...
@@ -26,10 +30,18 @@ import com.google.firebase.database.FirebaseDatabase;
public
class
TrackerService
extends
Service
{
private
static
final
String
TAG
=
"GPS2"
;
private
boolean
isRunning
=
false
;
private
Looper
looper
;
private
MyServiceHandler
myServiceHandler
;
@Override
public
void
onCreate
()
{
super
.
onCreate
();
HandlerThread
handlerthread
=
new
HandlerThread
(
"MyThread"
,
Process
.
THREAD_PRIORITY_BACKGROUND
);
handlerthread
.
start
();
looper
=
handlerthread
.
getLooper
();
myServiceHandler
=
new
MyServiceHandler
(
looper
);
isRunning
=
true
;
}
...
...
@@ -37,7 +49,7 @@ public class TrackerService extends Service {
public
int
onStartCommand
(
Intent
intent
,
int
flags
,
int
startId
)
{
String
user_id
=
intent
.
getStringExtra
(
"user_id"
);
String
bus_id
=
intent
.
getStringExtra
(
"bus_id"
);
buildNotification
();
//
buildNotification();
requestLocationUpdates
(
user_id
,
bus_id
);
Toast
.
makeText
(
this
,
"MyService Started."
,
Toast
.
LENGTH_SHORT
).
show
();
//If service is killed while starting, it restarts.
...
...
@@ -53,6 +65,37 @@ public class TrackerService extends Service {
return
null
;
}
@Override
public
void
onDestroy
()
{
isRunning
=
false
;
Toast
.
makeText
(
this
,
"MyService Completed or Stopped."
,
Toast
.
LENGTH_SHORT
).
show
();
}
private
final
class
MyServiceHandler
extends
Handler
{
public
MyServiceHandler
(
Looper
looper
)
{
super
(
looper
);
}
@Override
public
void
handleMessage
(
Message
msg
)
{
synchronized
(
this
)
{
for
(
int
i
=
0
;
i
<
10
;
i
++)
{
try
{
Log
.
i
(
TAG
,
"MyService running..."
);
Thread
.
sleep
(
1000
);
}
catch
(
Exception
e
)
{
Log
.
i
(
TAG
,
e
.
getMessage
());
}
if
(!
isRunning
){
break
;
}
}
}
//stops the service for the start id.
stopSelfResult
(
msg
.
arg1
);
}
}
private
void
buildNotification
()
{
String
stop
=
"stop"
;
registerReceiver
(
stopReceiver
,
new
IntentFilter
(
stop
));
...
...
@@ -64,7 +107,7 @@ public class TrackerService extends Service {
.
setContentText
(
getString
(
R
.
string
.
notification_text
))
.
setOngoing
(
true
)
.
setContentIntent
(
broadcastIntent
)
.
setSmallIcon
(
R
.
drawable
.
ic_
bus
);
.
setSmallIcon
(
R
.
drawable
.
ic_
frontal_bus_silhouette
);
startForeground
(
1
,
builder
.
build
());
}
...
...
This diff is collapsed.
Click to expand it.
app/src/main/java/ubontransitdriver/paded/com/ubontransitdriver/TrackerService2.java
0 → 100644
View file @
7959a8fa
package
ubontransitdriver
.
paded
.
com
.
ubontransitdriver
;
import
android.app.Service
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.pm.PackageManager
;
import
android.location.Location
;
import
android.location.LocationManager
;
import
android.os.Bundle
;
import
android.os.IBinder
;
import
android.support.annotation.Nullable
;
import
android.support.v4.app.ActivityCompat
;
import
android.util.Log
;
public
class
TrackerService2
extends
Service
{
private
static
final
String
TAG
=
"MyLocationService"
;
private
LocationManager
mLocationManager
=
null
;
private
static
final
int
LOCATION_INTERVAL
=
50000
;
private
static
final
float
LOCATION_DISTANCE
=
10
;
private
class
LocationListener
implements
android
.
location
.
LocationListener
{
Location
mLastLocation
;
public
LocationListener
(
String
provider
)
{
Log
.
e
(
TAG
,
"LocationListener "
+
provider
);
mLastLocation
=
new
Location
(
provider
);
}
@Override
public
void
onLocationChanged
(
Location
location
)
{
Log
.
e
(
TAG
,
"onLocationChanged: "
+
location
);
mLastLocation
.
set
(
location
);
Log
.
d
(
TAG
,
"onLocationChanged Lat Lng: "
+
location
.
getLatitude
()+
" "
+
location
.
getLongitude
());
}
@Override
public
void
onProviderDisabled
(
String
provider
)
{
Log
.
e
(
TAG
,
"onProviderDisabled: "
+
provider
);
}
@Override
public
void
onProviderEnabled
(
String
provider
)
{
Log
.
e
(
TAG
,
"onProviderEnabled: "
+
provider
);
}
@Override
public
void
onStatusChanged
(
String
provider
,
int
status
,
Bundle
extras
)
{
Log
.
e
(
TAG
,
"onStatusChanged: "
+
provider
);
}
}
LocationListener
[]
mLocationListeners
=
new
LocationListener
[]{
new
LocationListener
(
LocationManager
.
PASSIVE_PROVIDER
)
};
@Override
public
IBinder
onBind
(
Intent
arg0
)
{
return
null
;
}
@Override
public
int
onStartCommand
(
Intent
intent
,
int
flags
,
int
startId
)
{
Log
.
e
(
TAG
,
"onStartCommand"
);
super
.
onStartCommand
(
intent
,
flags
,
startId
);
return
START_STICKY
;
}
@Override
public
void
onCreate
()
{
Log
.
e
(
TAG
,
"onCreate"
);
initializeLocationManager
();
try
{
mLocationManager
.
requestLocationUpdates
(
LocationManager
.
PASSIVE_PROVIDER
,
LOCATION_INTERVAL
,
LOCATION_DISTANCE
,
mLocationListeners
[
0
]
);
}
catch
(
java
.
lang
.
SecurityException
ex
)
{
Log
.
i
(
TAG
,
"fail to request location update, ignore"
,
ex
);
}
catch
(
IllegalArgumentException
ex
)
{
Log
.
d
(
TAG
,
"network provider does not exist, "
+
ex
.
getMessage
());
}
/*try {
mLocationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
LOCATION_INTERVAL,
LOCATION_DISTANCE,
mLocationListeners[1]
);
} catch (java.lang.SecurityException ex) {
Log.i(TAG, "fail to request location update, ignore", ex);
} catch (IllegalArgumentException ex) {
Log.d(TAG, "gps provider does not exist " + ex.getMessage());
}*/
}
@Override
public
void
onDestroy
()
{
Log
.
e
(
TAG
,
"onDestroy"
);
super
.
onDestroy
();
if
(
mLocationManager
!=
null
)
{
for
(
int
i
=
0
;
i
<
mLocationListeners
.
length
;
i
++)
{
try
{
if
(
ActivityCompat
.
checkSelfPermission
(
this
,
android
.
Manifest
.
permission
.
ACCESS_FINE_LOCATION
)
!=
PackageManager
.
PERMISSION_GRANTED
&&
ActivityCompat
.
checkSelfPermission
(
this
,
android
.
Manifest
.
permission
.
ACCESS_COARSE_LOCATION
)
!=
PackageManager
.
PERMISSION_GRANTED
)
{
return
;
}
mLocationManager
.
removeUpdates
(
mLocationListeners
[
i
]);
}
catch
(
Exception
ex
)
{
Log
.
i
(
TAG
,
"fail to remove location listener, ignore"
,
ex
);
}
}
}
}
private
void
initializeLocationManager
()
{
Log
.
e
(
TAG
,
"initializeLocationManager - LOCATION_INTERVAL: "
+
LOCATION_INTERVAL
+
" LOCATION_DISTANCE: "
+
LOCATION_DISTANCE
);
if
(
mLocationManager
==
null
)
{
mLocationManager
=
(
LocationManager
)
getApplicationContext
().
getSystemService
(
Context
.
LOCATION_SERVICE
);
}
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/ubontransitdriver/paded/com/ubontransitdriver/TrackerService3.java
0 → 100644
View file @
7959a8fa
package
ubontransitdriver
.
paded
.
com
.
ubontransitdriver
;
import
android.app.Service
;
import
android.content.Intent
;
import
android.content.pm.PackageManager
;
import
android.location.Location
;
import
android.os.Bundle
;
import
android.os.IBinder
;
import
android.os.Looper
;
import
android.support.annotation.NonNull
;
import
android.support.annotation.Nullable
;
import
android.support.v4.content.ContextCompat
;
import
android.util.Log
;
import
android.Manifest
;
import
com.google.android.gms.common.ConnectionResult
;
import
com.google.android.gms.common.api.GoogleApiClient
;
import
com.google.android.gms.location.FusedLocationProviderClient
;
import
com.google.android.gms.location.LocationCallback
;
import
com.google.android.gms.location.LocationRequest
;
import
com.google.android.gms.location.LocationResult
;
import
com.google.android.gms.location.LocationServices
;
import
com.google.firebase.database.DatabaseReference
;
import
com.google.firebase.database.FirebaseDatabase
;
import
java.util.Calendar
;
import
java.util.Date
;
public
class
TrackerService3
extends
Service
implements
GoogleApiClient
.
ConnectionCallbacks
,
GoogleApiClient
.
OnConnectionFailedListener
{
FusedLocationProviderClient
mFusedLocationClient
;
GoogleApiClient
mGoogleApiClient
;
LocationRequest
mLocationRequest
;
String
TAG
=
"trackService"
;
private
String
user_id
;
private
String
bus_id
;
@Nullable
@Override
public
IBinder
onBind
(
Intent
intent
)
{
return
null
;
}
@Override
public
int
onStartCommand
(
Intent
intent
,
int
flags
,
int
startId
)
{
user_id
=
intent
.
getStringExtra
(
"user_id"
);
bus_id
=
intent
.
getStringExtra
(
"bus_id"
);
Log
.
d
(
TAG
,
"onStartCommand: "
+
user_id
+
" "
+
bus_id
);
mFusedLocationClient
=
LocationServices
.
getFusedLocationProviderClient
(
this
);
if
(
mGoogleApiClient
!=
null
&&
mFusedLocationClient
!=
null
)
{
requestLocationUpdates
();
}
else
{
buildGoogleApiClient
();
}
return
START_STICKY
;
}
protected
synchronized
void
buildGoogleApiClient
()
{
mGoogleApiClient
=
new
GoogleApiClient
.
Builder
(
this
)
.
addConnectionCallbacks
(
this
)
.
addOnConnectionFailedListener
(
this
)
.
addApi
(
LocationServices
.
API
)
.
build
();
mGoogleApiClient
.
connect
();
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
if
(
mFusedLocationClient
!=
null
)
{
Log
.
d
(
TAG
,
"Service Stop"
);
mFusedLocationClient
.
removeLocationUpdates
(
mLocationCallback
);
}
}
public
void
requestLocationUpdates
()
{
mLocationRequest
=
new
LocationRequest
();
mLocationRequest
.
setInterval
(
10000
);
// two minute interval
mLocationRequest
.
setFastestInterval
(
5000
);
mLocationRequest
.
setPriority
(
LocationRequest
.
PRIORITY_HIGH_ACCURACY
);
if
(
ContextCompat
.
checkSelfPermission
(
this
,
Manifest
.
permission
.
ACCESS_FINE_LOCATION
)
==
PackageManager
.
PERMISSION_GRANTED
)
{
mFusedLocationClient
.
requestLocationUpdates
(
mLocationRequest
,
mLocationCallback
,
Looper
.
myLooper
());
}
}
LocationCallback
mLocationCallback
=
new
LocationCallback
(){
@Override
public
void
onLocationResult
(
LocationResult
locationResult
)
{
final
String
path
=
"active_bus/"
+
bus_id
+
"/"
+
user_id
;
for
(
Location
location
:
locationResult
.
getLocations
())
{
DatabaseReference
ref
=
FirebaseDatabase
.
getInstance
().
getReference
(
path
);
ref
.
child
(
"latitude"
).
setValue
(
location
.
getLatitude
());
ref
.
child
(
"longitude"
).
setValue
(
location
.
getLongitude
());
ref
.
child
(
"time"
).
setValue
(
location
.
getTime
());
// Date currentTime = Calendar.getInstance().getTime();
// Log.d(TAG, "Location: " + location.getLatitude() + " " + location.getLongitude()+" "+location.getTime()+" "+currentTime);
}
};
};
@Override
public
void
onConnected
(
@Nullable
Bundle
bundle
)
{
requestLocationUpdates
();
}
@Override
public
void
onConnectionSuspended
(
int
i
)
{
}
@Override
public
void
onConnectionFailed
(
@NonNull
ConnectionResult
connectionResult
)
{
}
}
This diff is collapsed.
Click to expand it.
app/src/main/res/drawable/bg_btn_activebus_clicked.xml
View file @
7959a8fa
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<solid
android:color=
"@color/
off_
green"
/>
<solid
android:color=
"@color/green"
/>
<corners
android:radius=
"8dp"
/>
<padding
...
...
This diff is collapsed.
Click to expand it.
app/src/main/res/drawable/bg_btn_activebus_normal.xml
View file @
7959a8fa
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<solid
android:color=
"@color/
green
"
/>
<solid
android:color=
"@color/
white
"
/>
<corners
android:radius=
"8dp"
/>
<stroke
android:width =
"1.5dp"
android:color=
"@color/green"
/>
<padding
android:bottom=
"7dip"
android:left=
"7dip"
...
...
This diff is collapsed.
Click to expand it.
app/src/main/res/drawable/bus_color_icon_red.xml
View file @
7959a8fa
...
...
@@ -16,7 +16,7 @@
</padding>
<corners
android:radius=
"
8
dp"
>
android:radius=
"
360
dp"
>
</corners>
</shape>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app/src/main/res/drawable/ic_sort.xml
0 → 100644
View file @
7959a8fa
<vector
android:height=
"24dp"
android:viewportHeight=
"426.667"
android:viewportWidth=
"426.667"
android:width=
"24dp"
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<path
android:fillColor=
"@color/gray_400"
android:pathData=
"M213.333,0C95.467,0 0,95.467 0,213.333s95.467,213.333 213.333,213.333S426.667,331.2 426.667,213.333S331.2,0 213.333,0zM96,149.333l74.667,-74.667l74.667,74.667H192v85.333h-42.667v-85.333H96zM256,352l-74.667,-74.667h53.333V192h42.667v85.333h53.333L256,352z"
/>
</vector>
This diff is collapsed.
Click to expand it.
app/src/main/res/drawable/ic_track_changes_green_24dp.xml
0 → 100644
View file @
7959a8fa
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:width=
"24dp"
android:height=
"24dp"
android:viewportWidth=
"24.0"
android:viewportHeight=
"24.0"
>
<path
android:fillColor=
"@color/green"
android:pathData=
"M19.07,4.93l-1.41,1.41C19.1,7.79 20,9.79 20,12c0,4.42 -3.58,8 -8,8s-8,-3.58 -8,-8c0,-4.08 3.05,-7.44 7,-7.93v2.02C8.16,6.57 6,9.03 6,12c0,3.31 2.69,6 6,6s6,-2.69 6,-6c0,-1.66 -0.67,-3.16 -1.76,-4.24l-1.41,1.41C15.55,9.9 16,10.9 16,12c0,2.21 -1.79,4 -4,4s-4,-1.79 -4,-4c0,-1.86 1.28,-3.41 3,-3.86v2.14c-0.6,0.35 -1,0.98 -1,1.72 0,1.1 0.9,2 2,2s2,-0.9 2,-2c0,-0.74 -0.4,-1.38 -1,-1.72V2h-1C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10c0,-2.76 -1.12,-5.26 -2.93,-7.07z"
/>
</vector>
This diff is collapsed.
Click to expand it.
app/src/main/res/drawable/ic_track_changes_white_24dp.xml
0 → 100644
View file @
7959a8fa
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:width=
"24dp"
android:height=
"24dp"
android:viewportWidth=
"24.0"
android:viewportHeight=
"24.0"
>
<path
android:fillColor=
"@color/white"
android:pathData=
"M19.07,4.93l-1.41,1.41C19.1,7.79 20,9.79 20,12c0,4.42 -3.58,8 -8,8s-8,-3.58 -8,-8c0,-4.08 3.05,-7.44 7,-7.93v2.02C8.16,6.57 6,9.03 6,12c0,3.31 2.69,6 6,6s6,-2.69 6,-6c0,-1.66 -0.67,-3.16 -1.76,-4.24l-1.41,1.41C15.55,9.9 16,10.9 16,12c0,2.21 -1.79,4 -4,4s-4,-1.79 -4,-4c0,-1.86 1.28,-3.41 3,-3.86v2.14c-0.6,0.35 -1,0.98 -1,1.72 0,1.1 0.9,2 2,2s2,-0.9 2,-2c0,-0.74 -0.4,-1.38 -1,-1.72V2h-1C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10c0,-2.76 -1.12,-5.26 -2.93,-7.07z"
/>
</vector>
This diff is collapsed.
Click to expand it.
app/src/main/res/drawable/icon_active_clicked.xml
0 → 100644
View file @
7959a8fa
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<item
android:state_pressed=
"true"
android:drawable=
"@drawable/ic_track_changes_white_24dp"
/>
<!-- pressed -->
<item
android:state_focused=
"true"
android:drawable=
"@drawable/ic_track_changes_white_24dp"
/>
<!-- focused -->
<item
android:drawable=
"@drawable/ic_track_changes_green_24dp"
/>
<!-- default -->
</selector>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app/src/main/res/drawable/text_active_color.xml
0 → 100644
View file @
7959a8fa
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<item
android:state_pressed=
"true"
android:color=
"@color/white"
/>
<item
android:color=
"@color/green"
/>
</selector>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app/src/main/res/layout/main_layout.xml
View file @
7959a8fa
This diff is collapsed.
Click to expand it.
app/src/main/res/values/colors.xml
View file @
7959a8fa
...
...
@@ -23,6 +23,7 @@
<color
name=
"gray_500"
>
#9E9E9E
</color>
<color
name=
"gray_400"
>
#BDBDBD
</color>
<color
name=
"gray_600"
>
#757575
</color>
<color
name=
"gray_800"
>
#424242
</color>
<color
name=
"gray_900"
>
#212121
</color>
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment