forked from cobeisfresh/CleanArchitecture-Android-Showcase
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
# Conflicts: # app/src/main/java/com/cobeisfresh/template/di/AppModule.kt # app/src/main/java/com/cobeisfresh/template/di/PresentationModule.kt # app/src/main/java/com/cobeisfresh/template/ui/weather/presentation/WeatherViewModel.kt # app/src/main/java/com/cobeisfresh/template/ui/weather/view/fragments/WeatherFragment.kt
- Loading branch information
Showing
22 changed files
with
304 additions
and
61 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,13 @@ | ||
package com.cobeisfresh.template.di | ||
|
||
import androidx.appcompat.app.AppCompatActivity | ||
import com.cobeisfresh.template.routing.AppFragmentNavigator | ||
import com.cobeisfresh.template.common.coroutine.CoroutineContextProvider | ||
import com.cobeisfresh.template.routing.AppNavigator | ||
import org.koin.dsl.module | ||
|
||
val appModule = module { | ||
single { CoroutineContextProvider() } | ||
single { (activity: AppCompatActivity) -> AppNavigator(activity) } | ||
single { AppFragmentNavigator() } | ||
} |
4 changes: 3 additions & 1 deletion
4
app/src/main/java/com/cobeisfresh/template/di/PresentationModule.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,11 @@ | ||
package com.cobeisfresh.template.di | ||
|
||
import com.cobeisfresh.template.ui.weather.presentation.WeatherViewModel | ||
import org.koin.androidx.viewmodel.dsl.viewModel | ||
import com.cobeisfresh.template.ui.welcome.presentation.WelcomeViewModel | ||
import org.koin.android.viewmodel.dsl.viewModel | ||
import org.koin.dsl.module | ||
|
||
val presentationModule = module { | ||
viewModel { WeatherViewModel(get(), get()) } | ||
viewModel { WelcomeViewModel() } | ||
} |
14 changes: 14 additions & 0 deletions
14
app/src/main/java/com/cobeisfresh/template/routing/AppFragmentNavigator.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package com.cobeisfresh.template.routing | ||
|
||
import androidx.fragment.app.FragmentActivity | ||
import com.cobeisfresh.template.R | ||
import com.cobeisfresh.template.common.extensions.showFragment | ||
import com.cobeisfresh.template.ui.weather.view.fragments.WeatherDetailsFragment | ||
|
||
class AppFragmentNavigator : FragmentNavigator { | ||
|
||
override fun showWeatherDetails(fragmentActivity: FragmentActivity) = | ||
fragmentActivity.showFragment(WeatherDetailsFragment.newInstance(), R.id.fragmentContainer, true) | ||
|
||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
9 changes: 9 additions & 0 deletions
9
app/src/main/java/com/cobeisfresh/template/routing/FragmentNavigator.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
package com.cobeisfresh.template.routing | ||
|
||
import androidx.fragment.app.FragmentActivity | ||
|
||
interface FragmentNavigator { | ||
|
||
fun showWeatherDetails(fragmentActivity: FragmentActivity) | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,4 +3,5 @@ package com.cobeisfresh.template.routing | |
interface Navigator { | ||
|
||
fun showWeather() | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
54 changes: 54 additions & 0 deletions
54
app/src/main/java/com/cobeisfresh/template/ui/base/BaseFragment.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
package com.cobeisfresh.template.ui.base | ||
|
||
import android.os.Bundle | ||
import android.view.LayoutInflater | ||
import android.view.View | ||
import android.view.ViewGroup | ||
import android.widget.ProgressBar | ||
import androidx.annotation.StringRes | ||
import androidx.fragment.app.Fragment | ||
import com.cobeisfresh.template.common.EMPTY_STRING | ||
import com.cobeisfresh.template.common.extensions.gone | ||
import com.cobeisfresh.template.common.extensions.snackbar | ||
import com.cobeisfresh.template.common.extensions.visible | ||
import com.cobeisfresh.template.routing.AppFragmentNavigator | ||
import com.cobeisfresh.template.routing.AppNavigator | ||
import org.koin.android.ext.android.inject | ||
import org.koin.core.parameter.parametersOf | ||
|
||
abstract class BaseFragment : Fragment() { | ||
|
||
protected val appFragmentNavigator: AppFragmentNavigator by inject() | ||
|
||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { | ||
return inflater.inflate(getLayout(), container, false) | ||
} | ||
|
||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { | ||
super.onViewCreated(view, savedInstanceState) | ||
viewReady() | ||
} | ||
|
||
protected fun onBackPressed() = (activity as BaseActivity).onBackPressed() | ||
|
||
abstract fun viewReady() | ||
|
||
abstract fun getLayout(): Int | ||
|
||
|
||
open fun showError(@StringRes errorMessage: Int, rootView: View) { | ||
(activity as BaseActivity).showError(errorMessage, rootView) | ||
} | ||
|
||
open fun showError(errorMessage: String?, rootView: View) { | ||
(activity as BaseActivity).showError(errorMessage, rootView) | ||
} | ||
|
||
open fun showLoading(progressBar: ProgressBar) { | ||
(activity as BaseActivity).showLoading(progressBar) | ||
} | ||
|
||
open fun hideLoading(progressBar: ProgressBar) { | ||
(activity as BaseActivity).hideLoading(progressBar) | ||
} | ||
} |
2 changes: 1 addition & 1 deletion
2
...ate/ui/weather/base/NavigatorViewModel.kt → ...sh/template/ui/base/NavigatorViewModel.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
...esh/template/ui/weather/base/ViewState.kt → ...cobeisfresh/template/ui/base/ViewState.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
23 changes: 0 additions & 23 deletions
23
app/src/main/java/com/cobeisfresh/template/ui/weather/base/BaseFragment.kt
This file was deleted.
Oops, something went wrong.
20 changes: 20 additions & 0 deletions
20
app/src/main/java/com/cobeisfresh/template/ui/weather/view/activities/WeatherActivity.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package com.cobeisfresh.template.ui.weather.view.activities | ||
|
||
import android.os.Bundle | ||
import com.cobeisfresh.template.R | ||
import com.cobeisfresh.template.routing.AppNavigator | ||
import com.cobeisfresh.template.routing.ScreenType | ||
import com.cobeisfresh.template.ui.base.BaseActivity | ||
import com.cobeisfresh.template.ui.weather.view.fragments.WeatherFragment | ||
|
||
class WeatherActivity : BaseActivity() { | ||
|
||
override fun onCreate(savedInstanceState: Bundle?) { | ||
super.onCreate(savedInstanceState) | ||
setContentView(R.layout.activity_container) | ||
when (intent.getSerializableExtra(AppNavigator.SCREEN_TYPE)) { | ||
ScreenType.WEATHER -> addFragment(WeatherFragment.newInstance(), R.id.fragmentContainer, true) | ||
else -> finish() | ||
} | ||
} | ||
} |
15 changes: 15 additions & 0 deletions
15
...rc/main/java/com/cobeisfresh/template/ui/weather/view/fragments/WeatherDetailsFragment.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
package com.cobeisfresh.template.ui.weather.view.fragments | ||
|
||
import com.cobeisfresh.template.R | ||
import com.cobeisfresh.template.ui.base.BaseFragment | ||
|
||
class WeatherDetailsFragment: BaseFragment() { | ||
|
||
override fun viewReady() {} | ||
|
||
override fun getLayout() = R.layout.fragment_weather_details | ||
|
||
companion object{ | ||
fun newInstance() = WeatherDetailsFragment() | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.