mirror of
https://github.com/melihaksoy/Android-Kotlin-Modulerized-CleanArchitecture.git
synced 2026-04-10 03:13:38 +02:00
Single activity approach (#30)
* CircleCI config fixes * Implicit deeplinking via navController navigate * Removed jacoco.exec files. Closes # 32
This commit is contained in:
Binary file not shown.
@@ -1,14 +1 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.melih.list">
|
||||
|
||||
<application>
|
||||
<activity
|
||||
android:name="com.melih.list.ui.LaunchesActivity"
|
||||
android:theme="@style/AppTheme">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
</manifest>
|
||||
<manifest package="com.melih.list" />
|
||||
@@ -1,24 +0,0 @@
|
||||
package com.melih.list.di
|
||||
|
||||
import com.melih.list.di.scopes.LaunchesScope
|
||||
import com.melih.list.ui.LaunchesActivity
|
||||
import dagger.Module
|
||||
import dagger.android.ContributesAndroidInjector
|
||||
|
||||
/**
|
||||
* Contributes fragments & view models in this module
|
||||
*/
|
||||
@Module
|
||||
abstract class LaunchesFeatureModule {
|
||||
|
||||
// region Contributes
|
||||
|
||||
@ContributesAndroidInjector(
|
||||
modules = [
|
||||
LaunchesContributor::class
|
||||
]
|
||||
)
|
||||
@LaunchesScope
|
||||
abstract fun launchesActivity(): LaunchesActivity
|
||||
// endregion
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
package com.melih.list.ui
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.navigation.fragment.NavHostFragment
|
||||
import com.melih.core.base.lifecycle.BaseActivity
|
||||
import com.melih.list.R
|
||||
import com.melih.list.databinding.LaunchesActivityBinding
|
||||
|
||||
class LaunchesActivity : BaseActivity<LaunchesActivityBinding>() {
|
||||
|
||||
// region Functions
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
setSupportActionBar(binding.toolbar)
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.activity_launches
|
||||
|
||||
override fun createNavHostFragment() =
|
||||
NavHostFragment.create(R.navigation.nav_launches)
|
||||
|
||||
override fun addNavHostTo(): Int = R.id.container
|
||||
// endregion
|
||||
}
|
||||
@@ -3,7 +3,7 @@ package com.melih.list.ui
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
import com.melih.core.actions.Actions
|
||||
import com.melih.core.actions.openDetail
|
||||
import com.melih.core.base.lifecycle.BaseDaggerFragment
|
||||
import com.melih.core.extensions.createFor
|
||||
import com.melih.core.extensions.observe
|
||||
@@ -36,17 +36,6 @@ class LaunchesFragment : BaseDaggerFragment<ListBinding>(), SwipeRefreshLayout.O
|
||||
observeDataChanges()
|
||||
}
|
||||
|
||||
//override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||
// inflater.inflate(R.menu.menu_rocket_list, menu)
|
||||
//
|
||||
// with(menu.findItem(R.id.search)) {
|
||||
// onExpandOrCollapse(::onSearchExpand, ::onSearchCollapse)
|
||||
// setSearchQueryListener(actionView as SearchView)
|
||||
// }
|
||||
//
|
||||
// super.onCreateOptionsMenu(menu, inflater)
|
||||
//}
|
||||
|
||||
private fun observeDataChanges() {
|
||||
|
||||
// Observing state to show loading
|
||||
@@ -64,30 +53,12 @@ class LaunchesFragment : BaseDaggerFragment<ListBinding>(), SwipeRefreshLayout.O
|
||||
observe(viewModel.pagedList) {
|
||||
launchesAdapter.submitList(it)
|
||||
}
|
||||
|
||||
//observe(viewModel.filteredItems) {
|
||||
// launchesAdapter.submitList(it)
|
||||
//}
|
||||
}
|
||||
|
||||
private fun onItemSelected(item: LaunchEntity) {
|
||||
startActivity(Actions.openDetailFor(item.id))
|
||||
openDetail(item.id)
|
||||
}
|
||||
|
||||
//private fun onSearchExpand() {
|
||||
// binding.swipeRefreshLayout.isEnabled = false
|
||||
//}
|
||||
|
||||
//private fun onSearchCollapse() {
|
||||
// binding.swipeRefreshLayout.isEnabled = true
|
||||
//}
|
||||
|
||||
//private fun setSearchQueryListener(searchView: SearchView) {
|
||||
// searchView.setOnQueryChangedListener {
|
||||
// viewModel.filterItemListBy(it)
|
||||
// }
|
||||
//}
|
||||
|
||||
override fun onRefresh() {
|
||||
viewModel.refresh()
|
||||
}
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<data class="LaunchesActivityBinding" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?android:actionBarSize"
|
||||
android:background="@color/colorPrimary" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
</LinearLayout>
|
||||
</layout>
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<navigation
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/nav_launches"
|
||||
|
||||
Reference in New Issue
Block a user