Skip to content

Commit

Permalink
Add methods to clear any instance of any objects
Browse files Browse the repository at this point in the history
  • Loading branch information
teebbo committed Mar 15, 2019
1 parent 78ca74e commit 1ec2af5
Show file tree
Hide file tree
Showing 12 changed files with 154 additions and 174 deletions.
4 changes: 2 additions & 2 deletions iconvert-android/app/app.iml
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,6 @@
<orderEntry type="library" name="Gradle: org.jetbrains.trove4j:trove4j:20160824@jar" level="project" />
<orderEntry type="library" name="Gradle: com.facebook.stetho:stetho-1.5.0" level="project" />
<orderEntry type="library" name="Gradle: androidx.swiperefreshlayout:swiperefreshlayout-1.0.0" level="project" />
<orderEntry type="library" name="Gradle: com.github.aleengo.peach-toolbox:toolbox-0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Gradle: androidx.coordinatorlayout:coordinatorlayout-1.0.0" level="project" />
<orderEntry type="library" name="Gradle: androidx.documentfile:documentfile-1.0.0" level="project" />
<orderEntry type="library" name="Gradle: com.google.dagger:dagger:2.21@jar" level="project" />
Expand All @@ -148,6 +147,7 @@
<orderEntry type="library" name="Gradle: androidx.interpolator:interpolator-1.0.0" level="project" />
<orderEntry type="library" name="Gradle: androidx.sqlite:sqlite-framework-2.0.0" level="project" />
<orderEntry type="library" name="Gradle: androidx.savedstate:savedstate-bundle-1.0.0-alpha01" level="project" />
<orderEntry type="library" name="Gradle: com.github.aleengo.peach-toolbox:toolbox-04e436cb0b" level="project" />
<orderEntry type="library" name="Gradle: androidx.vectordrawable:vectordrawable-1.0.1" level="project" />
<orderEntry type="library" name="Gradle: androidx.legacy:legacy-support-v4-1.0.0" level="project" />
<orderEntry type="library" name="Gradle: androidx.fragment:fragment-1.1.0-alpha04" level="project" />
Expand All @@ -161,7 +161,7 @@
<orderEntry type="library" name="Gradle: androidx.constraintlayout:constraintlayout-2.0.0-alpha3" level="project" />
<orderEntry type="library" name="Gradle: androidx.activity:activity-1.0.0-alpha04" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: androidx.test:runner-1.1.1" level="project" />
<orderEntry type="library" name="Gradle: com.github.aleengo.peach-toolbox:commons:-SNAPSHOT@jar" level="project" />
<orderEntry type="library" name="Gradle: com.github.aleengo.peach-toolbox:commons:04e436cb0b@jar" level="project" />
<orderEntry type="library" name="Gradle: com.google.code.gson:gson:2.8.5@jar" level="project" />
<orderEntry type="library" name="Gradle: androidx.lifecycle:lifecycle-runtime-2.0.0" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.leakcanary:leakcanary-watcher:1.6.3@jar" level="project" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
package com.kimboofactory.iconvert.application;

import android.app.Activity;
import android.app.Application;
import android.content.Context;

import com.aleengo.peach.toolbox.commons.common.PeachConfig;
import com.facebook.stetho.Stetho;
import com.kimboofactory.iconvert.application.dagger.AppComponent;
import com.kimboofactory.iconvert.application.dagger.AppModule;
import com.kimboofactory.iconvert.application.dagger.DaggerAppComponent;
import com.kimboofactory.iconvert.di.Injector;
import com.squareup.leakcanary.LeakCanary;
import com.squareup.leakcanary.RefWatcher;

Expand All @@ -19,9 +18,10 @@
public class IConvertApplication extends Application {

private RefWatcher refWatcher;
private AppComponent appComponent;

public static IConvertApplication getApplication(Activity activity) {
return (IConvertApplication) activity.getApplication();
public static IConvertApplication getApplication(Context context) {
return (IConvertApplication) context.getApplicationContext();
}

@Override
Expand All @@ -45,14 +45,17 @@ public void onCreate() {
Stetho.initialize(stethoInitializer);

// Dagger initialization
Injector.instance().setAppComponent(DaggerAppComponent.builder()
appComponent = DaggerAppComponent.builder()
.appModule(new AppModule(this))
.build());
.build();

}

public AppComponent appComponent() {
return appComponent;
}

public static RefWatcher getRefWatcher(Context context) {
IConvertApplication application = (IConvertApplication) context.getApplicationContext();
return application.refWatcher;
return getApplication(context).refWatcher;
}
}
Original file line number Diff line number Diff line change
@@ -1,71 +1,11 @@
package com.kimboofactory.iconvert.di;

import com.kimboofactory.iconvert.application.dagger.AppComponent;
import com.kimboofactory.iconvert.ui.home.dagger.DaggerMainActivityComponent;
import com.kimboofactory.iconvert.ui.home.dagger.MainActivityComponent;
import com.kimboofactory.iconvert.ui.home.dagger.MainActivityModule;
import com.kimboofactory.iconvert.ui.home.presentation.MvpHomeView;
import com.kimboofactory.iconvert.ui.home.views.MainActivity;
import com.kimboofactory.iconvert.ui.search.dagger.DaggerSearchActivityComponent;
import com.kimboofactory.iconvert.ui.search.dagger.SearchActivityComponent;
import com.kimboofactory.iconvert.ui.search.dagger.SearchActivityModule;
import com.kimboofactory.iconvert.ui.search.presentation.MvpSearchView;
import com.kimboofactory.iconvert.ui.search.views.SearchCurrencyActivity;

import lombok.Getter;
import lombok.Setter;

/**
* Created by CK_ALEENGO on 25/02/2019.
* Copyright (c) 2019. All rights reserved.
*/
public final class Injector {

@Getter @Setter
private AppComponent appComponent;
@Getter @Setter
private MainActivityComponent homeComponent;
@Getter @Setter
private SearchActivityComponent searchComponent;

private Injector() {}

public static Injector instance() {
return LazyHolder.INSTANCE;
}

public void inject(MainActivity activity) {
setHomeComponent(DaggerMainActivityComponent.builder()
.plus(getAppComponent())
.mainActivityModule(new MainActivityModule(activity))
.build());
getHomeComponent().inject(activity);
}

public void inject(SearchCurrencyActivity activity) {
setSearchComponent(DaggerSearchActivityComponent.builder()
.plus(getAppComponent())
.searchActivityModule(new SearchActivityModule(activity))
.build());
getSearchComponent().inject(activity);
}

public void inject(MvpHomeView view) {
getHomeComponent()
.viewComponentBuilder()
.viewModule(new com.kimboofactory.iconvert.ui.home.dagger.ViewModule())
.build()
.inject(view);
}

public void inject(MvpSearchView view) {
getSearchComponent()
.viewComponentBuilder()
.viewModule(new com.kimboofactory.iconvert.ui.search.dagger.ViewModule())
.build()
.inject(view);
}

private static class LazyHolder {
private static final Injector INSTANCE = new Injector();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.kimboofactory.iconvert.ui.home.presentation;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.FrameLayout;
Expand All @@ -14,10 +13,10 @@
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.kimboofactory.iconvert.R;
import com.kimboofactory.iconvert.common.Constant;
import com.kimboofactory.iconvert.di.Injector;
import com.kimboofactory.iconvert.domain.model.CurrencyEntity;
import com.kimboofactory.iconvert.dto.CurrencyIHM;
import com.kimboofactory.iconvert.events.GetFavoriteEvent;
import com.kimboofactory.iconvert.ui.home.dagger.ViewModule;
import com.kimboofactory.iconvert.ui.home.views.FavoritesAdapter;
import com.kimboofactory.iconvert.ui.home.views.HomeViewListener;
import com.kimboofactory.iconvert.ui.home.views.MainActivity;
Expand All @@ -32,7 +31,6 @@

import javax.inject.Inject;

import androidx.annotation.Nullable;
import butterknife.BindView;
import lombok.Getter;
import lombok.Setter;
Expand Down Expand Up @@ -62,29 +60,27 @@ public class MvpHomeView extends FrameLayout implements FavoriteContract.View {
FavoritesAdapter adapter;
@Inject
HomeViewListener listener;

@Getter @Setter
private CurrencyIHM currencySource;

private MainActivity activity;
private boolean mFirstLoad = true;


public MvpHomeView(MainActivity activity) {
super(activity);
this.activity = activity;
inflate(getContext(), R.layout.activity_main, this);
}

public void init(@Nullable Bundle savedInstanceState) {

if (savedInstanceState == null) {
}

Injector.instance().inject(this);
public void init() {
activity.getDaggerComponent().viewComponentBuilder()
.viewModule(new ViewModule())
.build()
.inject(this);

favoritesLV.setAdapter(adapter);
activity.setSupportActionBar(toolbar);
/*favoritesLV.setOnItemClickListener(listener);
favoritesLV.setOnItemLongClickListener(listener);*/

fab.setOnClickListener((View v) -> activity.getPresenter().addFavorite(Constant.SEARCH_CURRENCY_REQUEST_CODE));
amountET.addTextChangedListener(listener);
Expand All @@ -108,7 +104,8 @@ public void stop() {

@Override
public void clear() {
//binder.unbind();
currencySource = null;
activity = null;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@
import com.kimboofactory.iconvert.R;
import com.kimboofactory.iconvert.application.IConvertApplication;
import com.kimboofactory.iconvert.common.Constant;
import com.kimboofactory.iconvert.di.Injector;
import com.kimboofactory.iconvert.ui.home.dagger.DaggerMainActivityComponent;
import com.kimboofactory.iconvert.ui.home.dagger.MainActivityComponent;
import com.kimboofactory.iconvert.ui.home.dagger.MainActivityModule;
import com.kimboofactory.iconvert.ui.home.presentation.MainPresenter;
import com.kimboofactory.iconvert.ui.home.presentation.MvpHomeView;

Expand All @@ -33,14 +35,21 @@ public class MainActivity extends BaseActivity {
@Inject @Getter
MainPresenter presenter;

@Getter
private MainActivityComponent daggerComponent;

@Override
public String logTag() {
return "MainActivity";
}

@Override
public void daggerConfiguration() {
Injector.instance().inject(this);
daggerComponent = DaggerMainActivityComponent.builder()
.plus(IConvertApplication.getApplication(this).appComponent())
.mainActivityModule(new MainActivityModule(this))
.build();
daggerComponent.inject(this);
}

@Override
Expand All @@ -51,7 +60,7 @@ public View getLayoutView() {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mMvpView.init(savedInstanceState);
mMvpView.init();
presenter.attach(mMvpView);
}

Expand Down Expand Up @@ -89,13 +98,15 @@ protected void onStop() {

@Override
protected void onDestroy() {
super.onDestroy();
mMvpView.clear();
presenter.detach();
daggerComponent = null;

if (PeachConfig.isDebug()) {
IConvertApplication.getRefWatcher(MainActivity.this).watch(MainActivity.this);
}
super.onDestroy();

}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import android.app.SearchManager;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.inputmethod.EditorInfo;
Expand All @@ -17,9 +16,9 @@
import com.google.android.material.snackbar.Snackbar;
import com.kimboofactory.iconvert.R;
import com.kimboofactory.iconvert.common.Constant;
import com.kimboofactory.iconvert.di.Injector;
import com.kimboofactory.iconvert.dto.CurrencyIHM;
import com.kimboofactory.iconvert.events.CurrenciesEvent;
import com.kimboofactory.iconvert.ui.search.dagger.ViewModule;
import com.kimboofactory.iconvert.ui.search.views.SearchCurrencyActivity;
import com.kimboofactory.iconvert.ui.search.views.SearchCurrencyAdapter;
import com.kimboofactory.iconvert.ui.search.views.SearchItemView;
Expand All @@ -33,7 +32,6 @@

import javax.inject.Inject;

import androidx.annotation.Nullable;
import androidx.appcompat.widget.SearchView;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
Expand Down Expand Up @@ -89,9 +87,12 @@ public void clear() {
snackbar = null;
}

public void init(@Nullable Bundle savedInstanceState) {
public void init() {
// dagger init
Injector.instance().inject(this);
activity.getDaggerComponent().viewComponentBuilder()
.viewModule(new ViewModule())
.build()
.inject(this);

activity.setSupportActionBar(toolbar);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
import com.aleengo.peach.toolbox.commons.common.PeachConfig;
import com.aleengo.peach.toolbox.ui.BaseActivity;
import com.kimboofactory.iconvert.application.IConvertApplication;
import com.kimboofactory.iconvert.di.Injector;
import com.kimboofactory.iconvert.ui.search.dagger.DaggerSearchActivityComponent;
import com.kimboofactory.iconvert.ui.search.dagger.SearchActivityComponent;
import com.kimboofactory.iconvert.ui.search.dagger.SearchActivityModule;
import com.kimboofactory.iconvert.ui.search.presentation.MvpSearchView;
import com.kimboofactory.iconvert.ui.search.presentation.SearchPresenter;

Expand All @@ -24,6 +26,9 @@ public class SearchCurrencyActivity extends BaseActivity {
@Inject @Getter
SearchPresenter presenter;

@Getter
private SearchActivityComponent daggerComponent;

@Override
public String logTag() {
return "SearchCurrencyActivity";
Expand All @@ -37,14 +42,18 @@ public View getLayoutView() {
@Override
public void daggerConfiguration() {
// Dagger config
Injector.instance().inject(this);
daggerComponent = DaggerSearchActivityComponent.builder()
.plus(IConvertApplication.getApplication(this).appComponent())
.searchActivityModule(new SearchActivityModule(this))
.build();
daggerComponent.inject(this);
}

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

mMvpView.init(savedInstanceState);
mMvpView.init();
presenter.attach(mMvpView);
}

Expand All @@ -63,11 +72,12 @@ protected void onStop() {

@Override
protected void onDestroy() {
super.onDestroy();
mMvpView.clear();
presenter.clear();
daggerComponent = null;
if(PeachConfig.isDebug()) {
IConvertApplication.getRefWatcher(this).watch(this);
}
super.onDestroy();
}
}
2 changes: 1 addition & 1 deletion iconvert-android/versions.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ versions.timber = "4.5.1"
versions.volley = "1.1.0"
versions.lombok = "1.16.20"
versions.room = "2.1.0-alpha04"
versions.toolbox= "-SNAPSHOT"
versions.toolbox= "04e436cb0b"
versions.stetho = "1.5.0"
versions.leakcanary="1.6.3"
versions.dagger2 = "2.21"
Expand Down
2 changes: 1 addition & 1 deletion iconvert-service/api/db.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const _db = (mode) => {

const db = config.parsed;
return {
MONGO_URI: `mongodb+srv://${db.USERNAME}:${db.PASSWORD}@${db.SERVER}/${db.NAME}?retryWrites=true`,
MONGO_URI: `mongodb+srv://${db.USERNAME}:${db.PASSWORD}@${db.SERVER}/${db.DBNAME}?retryWrites=true`,
options: {
useNewUrlParser: true,
useCreateIndex: true,
Expand Down
Loading

0 comments on commit 1ec2af5

Please sign in to comment.