Skip to content

Commit

Permalink
Merge pull request #18 from AkshayAshokCode/bug-fix/#17/In-app-review
Browse files Browse the repository at this point in the history
bug-fix/#17/In-app-review
  • Loading branch information
AkshayAshokCode authored Dec 10, 2021
2 parents f469c11 + c09b381 commit 3cada42
Show file tree
Hide file tree
Showing 8 changed files with 90 additions and 25 deletions.
4 changes: 4 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ android {

dependencies {
def nav_version = "2.3.5"
def lifecycle_version = "2.4.0"
implementation 'androidx.core:core-ktx:1.3.2'
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
Expand All @@ -51,4 +52,7 @@ dependencies {

// for adding recyclerview
implementation 'androidx.recyclerview:recyclerview:1.2.1'

// LiveData
implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version")
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
package com.akshayAshokCode.androidsensors.adapter

import android.content.Context
import android.hardware.Sensor
import android.hardware.SensorManager
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
import androidx.databinding.DataBindingUtil
import androidx.navigation.findNavController
import androidx.recyclerview.widget.RecyclerView
import com.akshayAshokCode.androidsensors.R
import com.akshayAshokCode.androidsensors.data.SensorModel
import com.akshayAshokCode.androidsensors.databinding.SensorItemBinding

class SensorAdapter(private val context: Context?, private val sensorsList: List<SensorModel>) :
class SensorAdapter(private val context: Context?, private val sensorsList: List<com.akshayAshokCode.androidsensors.data.SensorModel>) :
RecyclerView.Adapter<SensorAdapter.ViewHolder>() {
private lateinit var binding: SensorItemBinding
private lateinit var sensorManager: SensorManager
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.akshayAshokCode.androidsensors.data

import android.hardware.Sensor
import com.akshayAshokCode.androidsensors.R

class SensorRepository {
fun getSensors(): List<SensorModel> {
return listOf(
SensorModel(
"Metal detector",
R.drawable.metal_icon,
Sensor.TYPE_MAGNETIC_FIELD
),
SensorModel(
"Gravity meter",
R.drawable.gravity_icon,
Sensor.TYPE_GRAVITY
),
SensorModel(
"Heart rate meter",
R.drawable.heart_icon,
Sensor.TYPE_HEART_RATE
),
SensorModel(
"Pressure meter",
R.drawable.pressure_icon,
Sensor.TYPE_PRESSURE
),
SensorModel(
"Relative Humidity",
R.drawable.humidity_icon,
Sensor.TYPE_RELATIVE_HUMIDITY
)
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.akshayAshokCode.androidsensors.presentation

import androidx.lifecycle.ViewModel
import androidx.lifecycle.liveData
import com.akshayAshokCode.androidsensors.data.SensorRepository
import kotlinx.coroutines.Dispatchers

class AllSensorsViewModel :ViewModel() {
private var sensorRepository=SensorRepository()
var sensors= liveData(Dispatchers.IO){
val result=sensorRepository.getSensors()
emit(result)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import android.content.IntentSender.SendIntentException
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.MenuItem
import androidx.annotation.Nullable
import androidx.databinding.DataBindingUtil
import androidx.drawerlayout.widget.DrawerLayout
Expand All @@ -28,7 +29,7 @@ import com.google.android.play.core.install.model.UpdateAvailability
// Add Heart rate meter
// Add pressure meter
// Add Relative Humidity
class MainActivity : AppCompatActivity() {
class MainActivity : AppCompatActivity(),NavigationView.OnNavigationItemSelectedListener {

private lateinit var toolbar: MaterialToolbar
private lateinit var navController: NavController
Expand Down Expand Up @@ -64,6 +65,16 @@ class MainActivity : AppCompatActivity() {
navigationView = binding.navView
drawerLayout = binding.drawerLayout

binding.navView.setNavigationItemSelectedListener{
Log.d(TAG,"Clicked Item:"+it.itemId)
when (it.itemId) {

else -> {
true
}
}
}
binding.navView.bringToFront()
val navHostFrag =
supportFragmentManager.findFragmentById(R.id.nav_host_frag) as NavHostFragment
navController = navHostFrag.navController
Expand Down Expand Up @@ -149,4 +160,10 @@ class MainActivity : AppCompatActivity() {
super.onBackPressed()
}
}

override fun onNavigationItemSelected(item: MenuItem): Boolean {
val id=item.itemId
Log.d(TAG,"Clicked Item:"+id)
return true
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,47 +3,38 @@ package com.akshayAshokCode.androidsensors.presentation.fragments
import android.hardware.Sensor
import android.hardware.SensorManager
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.databinding.DataBindingUtil
import androidx.fragment.app.Fragment
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager
import com.akshayAshokCode.androidsensors.R
import com.akshayAshokCode.androidsensors.adapter.SensorAdapter
import com.akshayAshokCode.androidsensors.data.SensorModel
import com.akshayAshokCode.androidsensors.databinding.AllSensorsBinding
import com.akshayAshokCode.androidsensors.presentation.AllSensorsViewModel

class AllSensors : Fragment() {
private val TAG = "AllSensors"
private lateinit var binding: AllSensorsBinding
private lateinit var sensorAdapter: SensorAdapter
private val sensorsList: MutableList<SensorModel> = mutableListOf()
private lateinit var sensorManager: SensorManager
private lateinit var allSensorsViewModel: AllSensorsViewModel
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = DataBindingUtil.inflate(inflater, R.layout.all_sensors, container, false)
binding.recyclerview.layoutManager = GridLayoutManager(context, 2)
if(sensorsList.isEmpty()) {
sensorsList.add(0, SensorModel("Metal detector", R.drawable.metal_icon,Sensor.TYPE_MAGNETIC_FIELD))
sensorsList.add(1, SensorModel("Gravity meter", R.drawable.gravity_icon,Sensor.TYPE_GRAVITY))
sensorsList.add(2, SensorModel("Heart rate meter", R.drawable.heart_icon,Sensor.TYPE_HEART_RATE))
sensorsList.add(3, SensorModel("Pressure meter", R.drawable.pressure_icon,Sensor.TYPE_PRESSURE))
sensorsList.add(4, SensorModel("Relative Humidity", R.drawable.humidity_icon,Sensor.TYPE_RELATIVE_HUMIDITY))
}

/* sensorManager = context?.getSystemService(AppCompatActivity.SENSOR_SERVICE) as SensorManager
var sensors: List<Sensor>
sensors = sensorManager.getSensorList(Sensor.TYPE_ALL)
for (sensor in sensors) {
Log.d(TAG, "All sensors: ${sensor.name}")
}
*/
sensorAdapter = SensorAdapter(context,sensorsList)
binding.recyclerview.adapter = sensorAdapter
allSensorsViewModel=ViewModelProvider(this).get(AllSensorsViewModel::class.java)
allSensorsViewModel.sensors.observe(viewLifecycleOwner, { sensor->
sensorAdapter = SensorAdapter(context, sensor)
binding.recyclerview.adapter = sensorAdapter
})
return binding.root
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.akshayAshokCode.androidsensors.presentation.fragments

import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
Expand All @@ -13,6 +14,7 @@ import com.google.android.play.core.review.ReviewManagerFactory

class InAppReview : Fragment() {
private lateinit var binding: InAppReviewLayoutBinding
private val TAG = "InAppReview"
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
Expand All @@ -24,12 +26,15 @@ class InAppReview : Fragment() {
request.addOnCompleteListener { task ->
if (task.isSuccessful) {
// We got the ReviewInfo object
Log.d(TAG,"FIRST:"+task.isComplete)
val reviewInfo = task.result
val flow = manager.launchReviewFlow(requireActivity(), reviewInfo)
flow.addOnCompleteListener {task->
if(task.isSuccessful){
Toast.makeText(requireContext(),"Review successful",Toast.LENGTH_SHORT).show()
binding.thankYou.visibility=View.VISIBLE
}else{

}

// The flow has finished. The API does not indicate whether the user
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/res/navigation/nav_graph.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,11 @@
android:id="@+id/relativeHumidityMeter"
android:name="com.akshayAshokCode.androidsensors.presentation.fragments.RelativeHumidityMeter"
android:label="Humidity Meter" />
<fragment
<!-- <fragment
android:id="@+id/inAppReview"
android:name="com.akshayAshokCode.androidsensors.presentation.fragments.InAppReview"
android:label="Write Us A Review" />
-->
<fragment
android:id="@+id/allSensors"
android:name="com.akshayAshokCode.androidsensors.presentation.fragments.AllSensors"
Expand Down

0 comments on commit 3cada42

Please sign in to comment.