Skip to content

Commit

Permalink
Merge pull request #39 from korti11/feature/33-Request-location-updat…
Browse files Browse the repository at this point in the history
…es-on-boot

Feature/33 request location updates on boot
Close #36
  • Loading branch information
korti11 committed Jan 16, 2020
2 parents 1e3b5e7 + 6647cb0 commit d11d0dd
Show file tree
Hide file tree
Showing 13 changed files with 26 additions and 63 deletions.
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ android {
minSdkVersion 21
targetSdkVersion 29
versionCode 1
versionName "1.0"
versionName "0.1.0-Alpha"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

javaCompileOptions {
Expand Down
6 changes: 4 additions & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="io.korti.muffle">

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Expand All @@ -14,7 +15,8 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:name=".MuffleApplication">
android:name=".MuffleApplication"
tools:ignore="GoogleAppIndexingWarning">

<meta-data
android:name="com.google.android.geo.API_KEY"
Expand Down Expand Up @@ -47,7 +49,7 @@
<activity
android:name=".SelectMufflePointActivity"
android:label="@string/title_activity_select_muffle_point"
android:theme="@style/AppTheme.NoActionBar"></activity>
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".EditMufflePointActivity"
android:label="@string/title_activity_edit_muffle_point"
Expand Down
10 changes: 2 additions & 8 deletions app/src/main/java/io/korti/muffle/AddMufflePointActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ class AddMufflePointActivity : AppCompatActivity() {
lateinit var audioManager: AudioManager

private lateinit var map: GoogleMap
private lateinit var mapFragment: SupportMapFragment

override fun onCreate(savedInstanceState: Bundle?) {
(applicationContext as MuffleApplication).appComponent.inject(this)
Expand Down Expand Up @@ -109,7 +108,7 @@ class AddMufflePointActivity : AppCompatActivity() {
}
}

mapFragment = supportFragmentManager
val mapFragment = supportFragmentManager
.findFragmentById(R.id.googleMap) as SupportMapFragment

mapFragment.getMapAsync {
Expand Down Expand Up @@ -150,11 +149,6 @@ class AddMufflePointActivity : AppCompatActivity() {

map.uiSettings.setAllGesturesEnabled(false)
map.uiSettings.isMyLocationButtonEnabled = false
/*map.setOnMapClickListener {
Intent(this, SelectMufflePointActivity::class.java).also { intent ->
startActivityForResult(intent, REQUEST_CODE)
}
}*/
}
}

Expand Down Expand Up @@ -218,7 +212,7 @@ class AddMufflePointActivity : AppCompatActivity() {
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.action_save -> {
Toast.makeText(this, "New muffle point added.", Toast.LENGTH_SHORT)
Toast.makeText(this, getString(R.string.toast_muffle_point_added), Toast.LENGTH_SHORT)
.show()
lifecycleScope.launch {
withContext(Dispatchers.Default) {
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/io/korti/muffle/EditMufflePointActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ class EditMufflePointActivity : AppCompatActivity() {
})

deleteButton.setOnClickListener {
Toast.makeText(this, "Deleted muffle point.", Toast.LENGTH_SHORT).show()
Toast.makeText(this, getString(R.string.toast_muffle_point_deleted), Toast.LENGTH_SHORT).show()
editMufflePointActivityViewModel.deleteMufflePoint()
this.finish()
}
Expand Down Expand Up @@ -209,7 +209,7 @@ class EditMufflePointActivity : AppCompatActivity() {
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.action_save -> {
Toast.makeText(this, "Edited muffle point saved.", Toast.LENGTH_SHORT)
Toast.makeText(this, getString(R.string.toast_muffle_point_edited), Toast.LENGTH_SHORT)
.show()
lifecycleScope.launch {
withContext(Dispatchers.Default) {
Expand Down
5 changes: 4 additions & 1 deletion app/src/main/java/io/korti/muffle/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.google.android.gms.maps.SupportMapFragment
import com.google.firebase.remoteconfig.FirebaseRemoteConfig
import io.korti.muffle.adapter.MuffleCardAdapter
import io.korti.muffle.location.LocationManager
import io.korti.muffle.viewmodel.MainActivityViewModel
Expand All @@ -46,6 +47,8 @@ class MainActivity : AppCompatActivity() {
lateinit var mainViewModel: MainActivityViewModel
@Inject
lateinit var locationManager: LocationManager
@Inject
lateinit var remoteConfig: FirebaseRemoteConfig

private val muffleCardAdapter = MuffleCardAdapter()
private lateinit var muffleCardLayout: RecyclerView.LayoutManager
Expand Down Expand Up @@ -125,7 +128,7 @@ class MainActivity : AppCompatActivity() {
override fun onCreateOptionsMenu(menu: Menu): Boolean {
// Inflate the menu; this adds items to the action bar if it is present.
menuInflater.inflate(R.menu.menu_main, menu)
return true
return remoteConfig.getBoolean("show_menu_main_activity")
}

override fun onOptionsItemSelected(item: MenuItem): Boolean {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ class SelectMufflePointActivity : AppCompatActivity() {
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.action_save -> {
Toast.makeText(this, "Position selected.", Toast.LENGTH_SHORT)
Toast.makeText(this, getString(R.string.toast_position_selected), Toast.LENGTH_SHORT)
.show()
val result = Intent()
result.putExtra(
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/io/korti/muffle/audio/AudioManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import javax.inject.Inject

class AudioManager @Inject constructor(private val context: Context) {
class AudioManager @Inject constructor(context: Context) {

companion object {
const val MUFFLING_SUCCESS = 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@ class LocationBroadcastReceiver : BroadcastReceiver() {
"io.korti.muffle.action.PROCESS_UPDATES"
}

private val TAG = LocationBroadcastReceiver::class.java.simpleName

/**
* This method is called when the BroadcastReceiver is receiving an Intent
* broadcast. During this time you can use the other methods on
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import androidx.core.app.JobIntentService
import com.google.android.gms.location.LocationResult
import io.korti.muffle.MuffleApplication
import io.korti.muffle.MufflePointManager
import kotlinx.coroutines.*
import kotlinx.coroutines.runBlocking
import javax.inject.Inject

class LocationTransitionsJobIntentService : JobIntentService() {
Expand All @@ -21,9 +21,6 @@ class LocationTransitionsJobIntentService : JobIntentService() {
}
}

private val job = Job()
private val serviceScope = CoroutineScope(Dispatchers.Default + job)

@Inject
lateinit var mufflePointManager: MufflePointManager

Expand Down Expand Up @@ -58,16 +55,8 @@ class LocationTransitionsJobIntentService : JobIntentService() {
runBlocking {
mufflePointManager.processLocations(result.lastLocation)
} // Could not find a better solution for the time.
/*serviceScope.launch {
mufflePointManager.processLocations(result.lastLocation)
}*/
}
}
}
}

override fun onDestroy() {
serviceScope.cancel()
super.onDestroy()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,36 +12,13 @@ import kotlinx.coroutines.launch
import javax.inject.Inject

class MainActivityViewModel @Inject constructor(
private val mufflePointDao: MufflePointDao,
mufflePointDao: MufflePointDao,
private val mufflePointManager: MufflePointManager
) : ViewModel() {

private val mufflePoints: LiveData<PagedList<MufflePoint>> =
mufflePointDao.getAllPaged().toLiveData(5)

/*init {
viewModelScope.launch {
writeDebugData()
}
}
private suspend fun writeDebugData() = withContext(Dispatchers.IO) {
try {
mufflePointDao.insertAll(
MufflePoint(
"jku_universität", 48.336617, 14.319306,
name = "JKU Universität", image = "", ringtoneVolume = 1
),
MufflePoint(
"home", 48.157500, 14.338056,
name = "Home", image = "", ringtoneVolume = 1
)
)
} catch (e: SQLiteConstraintException) {
// Just ignore it.
}
}*/

fun getMufflePoints(): LiveData<PagedList<MufflePoint>> {
return mufflePoints
}
Expand Down
14 changes: 5 additions & 9 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,18 @@
<string name="title_activity_select_muffle_point">Select point</string>
<string name="hint_search">Search on map…</string>
<string name="location_search_url">https://photon.komoot.de/api/?q=%s</string>
<string name="geofence_not_available">Geofence service is currently not available.</string>
<string name="geofence_too_many_geofences">You can\'t register more geofences. Max is 100 geofences.</string>
<string name="geofence_too_many_pending_intents">You have provided too many PendingIntents to the addGeofences() call</string>
<string name="geofence_unknown_error">Unknown error: the Geofence service is not available now.</string>
<string name="geofence_transition_enter">enter</string>
<string name="geofence_transition_dwell">dwell</string>
<string name="geofence_transition_exit">exit</string>
<string name="geofence_transition_unknown">unknown</string>
<string name="muffle_point_status_disabled">Disabled</string>
<string name="muffle_point_status_active">Active</string>
<string name="muffle_point_status_not_active">Not active</string>
<string name="audio_levels_preferences_key">io.korti.muffle.audio.levels</string>
<string name="muffle_point_status_in_area">In area</string>
<string name="muffle_point_status_unknown">Unknown</string>
<string name="audio_levels_preferences_key">io.korti.muffle.audio.levels</string>
<string name="notification_title">Muffle point active</string>
<string name="notification_text">Muffle point %s is currently active.</string>
<string name="notification_channel_name">Active Muffle Points</string>
<string name="notification_channel_description">Notification channel for the low priority notifications to show that a muffle point is active</string>
<string name="toast_position_selected">Position selected.</string>
<string name="toast_muffle_point_added">New muffle point added.</string>
<string name="toast_muffle_point_deleted">Deleted muffle point.</string>
<string name="toast_muffle_point_edited">Edited muffle point saved.</string>
</resources>
4 changes: 4 additions & 0 deletions app/src/main/res/xml/remote_config_defaults.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,8 @@
<key>max_wait_time</key>
<value>600000</value>
</entry>
<entry>
<key>show_menu_main_activity</key>
<value>false</value>
</entry>
</defaultsMap>
Binary file added app/src/release/res/values/google_maps_api.xml
Binary file not shown.

0 comments on commit d11d0dd

Please sign in to comment.