From 88b97445aa228396e09c734eb6f6407a90635f8f Mon Sep 17 00:00:00 2001 From: Ahmed Date: Sun, 29 Jul 2018 12:40:48 +0200 Subject: [PATCH 1/3] Add dagger2 support --- app/src/main/AndroidManifest.xml | 1 + .../blink22/android/mvpandroid/BaseApp.java | 31 +++++++ .../android/mvpandroid/di/AppModule.java | 27 ++++++ .../mvpandroid/di/NetworkComponent.java | 21 +++++ .../android/mvpandroid/di/NetworkModule.java | 88 +++++++++++++++++++ .../mvpandroid/newTodo/NewTodoFragment.java | 10 ++- .../mvpandroid/todos/TodosActivity.java | 6 ++ .../mvpandroid/todos/TodosFragment.java | 17 ++-- .../mvpandroid/todos/TodosPresenter.java | 3 - 9 files changed, 195 insertions(+), 9 deletions(-) create mode 100644 app/src/main/java/com/blink22/android/mvpandroid/BaseApp.java create mode 100644 app/src/main/java/com/blink22/android/mvpandroid/di/AppModule.java create mode 100644 app/src/main/java/com/blink22/android/mvpandroid/di/NetworkComponent.java create mode 100644 app/src/main/java/com/blink22/android/mvpandroid/di/NetworkModule.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c87e9f8..bb72880 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ Date: Sun, 29 Jul 2018 14:31:10 +0200 Subject: [PATCH 2/3] Add url dependency injection --- .../com/blink22/android/mvpandroid/BaseApp.java | 2 +- .../android/mvpandroid/di/NetworkModule.java | 15 +++++++++------ db.json | 8 +++++++- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/blink22/android/mvpandroid/BaseApp.java b/app/src/main/java/com/blink22/android/mvpandroid/BaseApp.java index c22a6a1..a016d87 100644 --- a/app/src/main/java/com/blink22/android/mvpandroid/BaseApp.java +++ b/app/src/main/java/com/blink22/android/mvpandroid/BaseApp.java @@ -20,7 +20,7 @@ public void onCreate() { mNetworkComponent = DaggerNetworkComponent.builder() .appModule(new AppModule(this)) - .networkModule(new NetworkModule(BuildConfig.BASE_URL)) + .networkModule(new NetworkModule()) .build(); } diff --git a/app/src/main/java/com/blink22/android/mvpandroid/di/NetworkModule.java b/app/src/main/java/com/blink22/android/mvpandroid/di/NetworkModule.java index 0ea4771..d35767d 100644 --- a/app/src/main/java/com/blink22/android/mvpandroid/di/NetworkModule.java +++ b/app/src/main/java/com/blink22/android/mvpandroid/di/NetworkModule.java @@ -2,6 +2,7 @@ import android.app.Application; +import com.blink22.android.mvpandroid.BuildConfig; import com.blink22.android.mvpandroid.apiInterfaces.TodosService; import com.blink22.android.mvpandroid.network.TodosSubscriber; import com.google.gson.Gson; @@ -26,10 +27,10 @@ @Module public class NetworkModule { - String mUrl; - - public NetworkModule(String url) { - this.mUrl = url; + @Provides + @Named("api_url") + String provideApiLink() { + return BuildConfig.BASE_URL; } @Provides @@ -65,11 +66,13 @@ CallAdapter.Factory provideCallAdapterFactory() { @Provides @Singleton - Retrofit provideRetrofit(@Named("cached") OkHttpClient okHttpClient, @Named("rxjava2_call_adapter") CallAdapter.Factory rxJava2CallAdapterFactory) { + Retrofit provideRetrofit(@Named("cached") OkHttpClient okHttpClient, + @Named("rxjava2_call_adapter") CallAdapter.Factory rxJava2CallAdapterFactory, + @Named("api_url") String url) { return new Retrofit.Builder() .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(rxJava2CallAdapterFactory) - .baseUrl(mUrl) + .baseUrl(url) .client(okHttpClient) .build(); } diff --git a/db.json b/db.json index e175372..d2a0ca5 100644 --- a/db.json +++ b/db.json @@ -2,7 +2,7 @@ "todos": [ { "details": "Go to the market to buy carrots", - "done": false, + "done": true, "id": 1, "title": "Buy grocery" }, @@ -149,6 +149,12 @@ "done": true, "id": 25, "title": "dsa Title" + }, + { + "details": "Ghazy Description", + "done": false, + "id": 26, + "title": "Title Ghazy" } ] } \ No newline at end of file From e144d3f8ba1cbf7801589c3c4feb4a0184d51f8d Mon Sep 17 00:00:00 2001 From: Ahmed Date: Sun, 29 Jul 2018 14:51:40 +0200 Subject: [PATCH 3/3] Refactor removing whitespaces renaming packages --- .../android/mvpandroid/{activities => }/BaseActivity.java | 2 +- .../blink22/android/mvpandroid/adapters/TodosAdapter.java | 1 - .../{apiInterfaces => apiinterfaces}/TodosService.java | 3 +-- .../com/blink22/android/mvpandroid/di/NetworkModule.java | 2 +- .../android/mvpandroid/models/NavigationItemEnum.java | 3 --- .../java/com/blink22/android/mvpandroid/models/Todo.java | 1 - .../blink22/android/mvpandroid/network/NetworkManager.java | 5 +---- .../blink22/android/mvpandroid/network/TodosSubscriber.java | 3 +-- .../blink22/android/mvpandroid/newTodo/NewTodoActivity.java | 2 +- .../blink22/android/mvpandroid/newTodo/NewTodoFragment.java | 1 - .../com/blink22/android/mvpandroid/todos/TodosActivity.java | 2 +- .../com/blink22/android/mvpandroid/todos/TodosFragment.java | 3 +-- .../com/blink22/android/mvpandroid/todos/TodosPresenter.java | 2 -- 13 files changed, 8 insertions(+), 22 deletions(-) rename app/src/main/java/com/blink22/android/mvpandroid/{activities => }/BaseActivity.java (97%) mode change 100755 => 100644 rename app/src/main/java/com/blink22/android/mvpandroid/{apiInterfaces => apiinterfaces}/TodosService.java (91%) mode change 100755 => 100644 diff --git a/app/src/main/java/com/blink22/android/mvpandroid/activities/BaseActivity.java b/app/src/main/java/com/blink22/android/mvpandroid/BaseActivity.java old mode 100755 new mode 100644 similarity index 97% rename from app/src/main/java/com/blink22/android/mvpandroid/activities/BaseActivity.java rename to app/src/main/java/com/blink22/android/mvpandroid/BaseActivity.java index 357f919..5501ec7 --- a/app/src/main/java/com/blink22/android/mvpandroid/activities/BaseActivity.java +++ b/app/src/main/java/com/blink22/android/mvpandroid/BaseActivity.java @@ -1,4 +1,4 @@ -package com.blink22.android.mvpandroid.activities; +package com.blink22.android.mvpandroid; import android.content.Intent; import android.os.Bundle; diff --git a/app/src/main/java/com/blink22/android/mvpandroid/adapters/TodosAdapter.java b/app/src/main/java/com/blink22/android/mvpandroid/adapters/TodosAdapter.java index effe736..37f38e1 100755 --- a/app/src/main/java/com/blink22/android/mvpandroid/adapters/TodosAdapter.java +++ b/app/src/main/java/com/blink22/android/mvpandroid/adapters/TodosAdapter.java @@ -29,7 +29,6 @@ public TodosAdapter(Context context, ArrayList data, OnItemClickListener l mContext = context; } - @Override public TodosVH onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_todos, null); diff --git a/app/src/main/java/com/blink22/android/mvpandroid/apiInterfaces/TodosService.java b/app/src/main/java/com/blink22/android/mvpandroid/apiinterfaces/TodosService.java old mode 100755 new mode 100644 similarity index 91% rename from app/src/main/java/com/blink22/android/mvpandroid/apiInterfaces/TodosService.java rename to app/src/main/java/com/blink22/android/mvpandroid/apiinterfaces/TodosService.java index 88d18b9..f2ec1aa --- a/app/src/main/java/com/blink22/android/mvpandroid/apiInterfaces/TodosService.java +++ b/app/src/main/java/com/blink22/android/mvpandroid/apiinterfaces/TodosService.java @@ -1,10 +1,9 @@ -package com.blink22.android.mvpandroid.apiInterfaces; +package com.blink22.android.mvpandroid.apiinterfaces; import com.blink22.android.mvpandroid.models.Todo; import java.util.ArrayList; - import io.reactivex.Observable; import retrofit2.http.Body; import retrofit2.http.GET; diff --git a/app/src/main/java/com/blink22/android/mvpandroid/di/NetworkModule.java b/app/src/main/java/com/blink22/android/mvpandroid/di/NetworkModule.java index d35767d..9596d74 100644 --- a/app/src/main/java/com/blink22/android/mvpandroid/di/NetworkModule.java +++ b/app/src/main/java/com/blink22/android/mvpandroid/di/NetworkModule.java @@ -3,7 +3,7 @@ import android.app.Application; import com.blink22.android.mvpandroid.BuildConfig; -import com.blink22.android.mvpandroid.apiInterfaces.TodosService; +import com.blink22.android.mvpandroid.apiinterfaces.TodosService; import com.blink22.android.mvpandroid.network.TodosSubscriber; import com.google.gson.Gson; diff --git a/app/src/main/java/com/blink22/android/mvpandroid/models/NavigationItemEnum.java b/app/src/main/java/com/blink22/android/mvpandroid/models/NavigationItemEnum.java index f0fa0dc..ace0794 100755 --- a/app/src/main/java/com/blink22/android/mvpandroid/models/NavigationItemEnum.java +++ b/app/src/main/java/com/blink22/android/mvpandroid/models/NavigationItemEnum.java @@ -12,7 +12,6 @@ public enum NavigationItemEnum { HOME(R.string.list_todos, android.R.drawable.ic_dialog_info, TodosActivity.class, 0), ADD_NEW_NOTE(R.string.add_new_todo, android.R.drawable.ic_input_add, NewTodoActivity.class, 1); - private int labelResourceId; private int iconResourceId; private Class classToLaunch; @@ -41,5 +40,3 @@ public int getId() { return id; } } - - diff --git a/app/src/main/java/com/blink22/android/mvpandroid/models/Todo.java b/app/src/main/java/com/blink22/android/mvpandroid/models/Todo.java index 5f8d315..401773f 100755 --- a/app/src/main/java/com/blink22/android/mvpandroid/models/Todo.java +++ b/app/src/main/java/com/blink22/android/mvpandroid/models/Todo.java @@ -10,7 +10,6 @@ public class Todo{ - @SerializedName("id") private int id; diff --git a/app/src/main/java/com/blink22/android/mvpandroid/network/NetworkManager.java b/app/src/main/java/com/blink22/android/mvpandroid/network/NetworkManager.java index 3cb5c01..8f4aac0 100755 --- a/app/src/main/java/com/blink22/android/mvpandroid/network/NetworkManager.java +++ b/app/src/main/java/com/blink22/android/mvpandroid/network/NetworkManager.java @@ -1,7 +1,7 @@ package com.blink22.android.mvpandroid.network; import com.blink22.android.mvpandroid.BuildConfig; -import com.blink22.android.mvpandroid.apiInterfaces.TodosService; +import com.blink22.android.mvpandroid.apiinterfaces.TodosService; import java.io.IOException; @@ -39,8 +39,6 @@ public static NetworkManager getInstance() { public TodosService getTodosService() { if (mTodosService == null) { - - mTodosService = new Retrofit .Builder() .baseUrl(BuildConfig.BASE_URL) @@ -50,7 +48,6 @@ public TodosService getTodosService() { .build() .create(TodosService.class); } - return mTodosService; } } diff --git a/app/src/main/java/com/blink22/android/mvpandroid/network/TodosSubscriber.java b/app/src/main/java/com/blink22/android/mvpandroid/network/TodosSubscriber.java index 8cbf63d..d90da3e 100755 --- a/app/src/main/java/com/blink22/android/mvpandroid/network/TodosSubscriber.java +++ b/app/src/main/java/com/blink22/android/mvpandroid/network/TodosSubscriber.java @@ -1,9 +1,8 @@ package com.blink22.android.mvpandroid.network; -import com.blink22.android.mvpandroid.apiInterfaces.TodosService; +import com.blink22.android.mvpandroid.apiinterfaces.TodosService; import com.blink22.android.mvpandroid.models.Todo; - import java.util.ArrayList; import io.reactivex.Observable; diff --git a/app/src/main/java/com/blink22/android/mvpandroid/newTodo/NewTodoActivity.java b/app/src/main/java/com/blink22/android/mvpandroid/newTodo/NewTodoActivity.java index 1b29630..4f357d9 100755 --- a/app/src/main/java/com/blink22/android/mvpandroid/newTodo/NewTodoActivity.java +++ b/app/src/main/java/com/blink22/android/mvpandroid/newTodo/NewTodoActivity.java @@ -2,7 +2,7 @@ import android.support.v4.app.Fragment; -import com.blink22.android.mvpandroid.activities.BaseActivity; +import com.blink22.android.mvpandroid.BaseActivity; /** * Created by ahmedghazy on 7/26/18. diff --git a/app/src/main/java/com/blink22/android/mvpandroid/newTodo/NewTodoFragment.java b/app/src/main/java/com/blink22/android/mvpandroid/newTodo/NewTodoFragment.java index 9b11e7f..99c6e56 100755 --- a/app/src/main/java/com/blink22/android/mvpandroid/newTodo/NewTodoFragment.java +++ b/app/src/main/java/com/blink22/android/mvpandroid/newTodo/NewTodoFragment.java @@ -16,7 +16,6 @@ import com.blink22.android.mvpandroid.network.NetworkManager; import com.blink22.android.mvpandroid.network.TodosSubscriber; - import javax.inject.Inject; import butterknife.BindView; diff --git a/app/src/main/java/com/blink22/android/mvpandroid/todos/TodosActivity.java b/app/src/main/java/com/blink22/android/mvpandroid/todos/TodosActivity.java index ddb461b..a7da693 100755 --- a/app/src/main/java/com/blink22/android/mvpandroid/todos/TodosActivity.java +++ b/app/src/main/java/com/blink22/android/mvpandroid/todos/TodosActivity.java @@ -12,7 +12,7 @@ import android.widget.Toast; import com.blink22.android.mvpandroid.BaseApp; -import com.blink22.android.mvpandroid.activities.BaseActivity; +import com.blink22.android.mvpandroid.BaseActivity; import com.blink22.android.mvpandroid.adapters.TodosAdapter; import com.blink22.android.mvpandroid.models.Todo; diff --git a/app/src/main/java/com/blink22/android/mvpandroid/todos/TodosFragment.java b/app/src/main/java/com/blink22/android/mvpandroid/todos/TodosFragment.java index 5f65b16..7cc1832 100755 --- a/app/src/main/java/com/blink22/android/mvpandroid/todos/TodosFragment.java +++ b/app/src/main/java/com/blink22/android/mvpandroid/todos/TodosFragment.java @@ -15,7 +15,7 @@ import android.widget.Toast; import com.blink22.android.mvpandroid.BaseApp; -import com.blink22.android.mvpandroid.activities.BaseActivity; +import com.blink22.android.mvpandroid.BaseActivity; import com.blink22.android.mvpandroid.adapters.TodosAdapter; import com.blink22.android.mvpandroid.models.Todo; @@ -40,7 +40,6 @@ public class TodosFragment extends Fragment implements TodosContract.View { TodosContract.Presenter mTodosPresenter; @Inject TodosSubscriber mTodosSubscriber; - public static TodosFragment newInstance() { Bundle args = new Bundle(); diff --git a/app/src/main/java/com/blink22/android/mvpandroid/todos/TodosPresenter.java b/app/src/main/java/com/blink22/android/mvpandroid/todos/TodosPresenter.java index be35ba2..49e4b2e 100755 --- a/app/src/main/java/com/blink22/android/mvpandroid/todos/TodosPresenter.java +++ b/app/src/main/java/com/blink22/android/mvpandroid/todos/TodosPresenter.java @@ -51,8 +51,6 @@ public void getTodos() { mView.showWait(); - - DisposableObserver> disposableObserver = mTodosSubscriber.getTodos(new TodosSubscriber.Callback>() { @Override public void onSuccess(ArrayList todos) {