Skip to content

Instantly share code, notes, and snippets.

View Sinarahimi's full-sized avatar
🏠
Working from home

Sina Rahimi Sinarahimi

🏠
Working from home
View GitHub Profile
@Sinarahimi
Sinarahimi / Fargment.kt
Created January 8, 2022 07:28
Pass data to Start Navigation
//MainFragment is an start Destination in navigation
class MainFragment:Fragmnet{
// Dont use private val args: MainFragmentArgs by navArgs() to get the args if you wanted to pass data to startDestination
//Fragmnet
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.get("Key")
@Sinarahimi
Sinarahimi / Activity.kt
Created January 8, 2022 07:23
Pass data to Start Navigation
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val extras = intent.extras
val finalHost = NavHostFragment.create(R.navigation.main_navigation , bundleOf("Key' to "value"))
supportFragmentManager.beginTransaction()
.replace(R.id.mainNavHost, finalHost)
@Sinarahimi
Sinarahimi / RecyclerView.kt
Created March 24, 2020 07:10
RecyclerView
recyclerView.setLayoutManager(new GridLayoutManager(this, numberOfColumns));
// resolve Default instance
get<ComponentInterface1>
// resolve Component1, casted as ComponentInterface1
koin.bind<ComponentInterface1,Component1>()
// resolve all instances matching ComponentInterface1: Default, Component1 & Component2
koin.getAll<ComponentInterface1>()
@Sinarahimi
Sinarahimi / Navigation Component.kt
Created January 7, 2020 06:29
Navigation Component back stack
findNavController()
.navigate(R.id.action_splashFragment_to_homeFragment,
null,
NavOptions.Builder()
.setPopUpTo(R.id.splashFragment,
true).build()
)
@Dao
public interface MovieDao extends BaseDao<Movie> {
@Query("select * from Movie")
LiveData<List<Movie>> getAll();
}
...
HomeViewModel homeViewModel = ViewModelProviders.of(this).get(HomeViewModel.class);
homeViewModel.getMovies().observe(HomeActivity.this, movieList -> {
if (movieList != null) {
ArrayList<Movie> movieArrayList = new ArrayList<>(movieList);
homeAdapter = new HomeAdapter(HomeActivity.this, movieArrayList);
InfiniteScrollAdapter wrapper = InfiniteScrollAdapter.wrap(homeAdapter);
discreteScrollView.setAdapter(wrapper);
class HomeViewModel extends AndroidViewModel {
private MovieRepository movieRepository;
HomeViewModel(@NonNull Application application) {
super(application);
movieRepository = new MovieRepository(application.getApplicationContext());
}
LiveData<List<Movie>> getMovies() {
public class MovieRepository extends BaseRepository {
private MovieApi movieApi;
private MovieDatabaseHelper movieDatabaseHelper;
public MovieRepository(Context context) {
movieApi = getRetrofitHelper().getService(MovieApi.class);
movieDatabaseHelper = new MovieDatabaseHelper(context);
}
public interface MovieApi {
@GET("/?s=Batman&page=1&apikey=96099fe3")
Single<Response<SearchResult>> getMovieList();
}