Commit 4a29beab authored by Isaac Pereira's avatar Isaac Pereira

Integrando indicador de 'loading' às chamadas remotas a casos de uso

parents f8e27ef5 9269ffab
...@@ -13,6 +13,7 @@ import br.com.evologica.mvp.data.prefs.AppPreferencesHelper; ...@@ -13,6 +13,7 @@ import br.com.evologica.mvp.data.prefs.AppPreferencesHelper;
import br.com.evologica.mvp.data.prefs.PreferencesHelper; import br.com.evologica.mvp.data.prefs.PreferencesHelper;
import br.com.evologica.mvp.di.ApplicationContext; import br.com.evologica.mvp.di.ApplicationContext;
import br.com.evologica.mvp.di.PreferenceInfo; import br.com.evologica.mvp.di.PreferenceInfo;
import br.com.evologica.mvp.utils.AppConstants;
import dagger.Module; import dagger.Module;
import dagger.Provides; import dagger.Provides;
import uk.co.chrisjenx.calligraphy.CalligraphyConfig; import uk.co.chrisjenx.calligraphy.CalligraphyConfig;
...@@ -56,7 +57,7 @@ public class ApplicationModule { ...@@ -56,7 +57,7 @@ public class ApplicationModule {
@Provides @Provides
@PreferenceInfo @PreferenceInfo
String providePreferenceName(){ String providePreferenceName(){
return "whatever"; return AppConstants.PREF_NAME;
} }
@Provides @Provides
......
package br.com.evologica.mvp.ui.base; package br.com.evologica.mvp.ui.base;
import android.app.ProgressDialog;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
...@@ -15,12 +16,15 @@ import br.com.evologica.mvp.R; ...@@ -15,12 +16,15 @@ import br.com.evologica.mvp.R;
import br.com.evologica.mvp.di.component.ActivityComponent; import br.com.evologica.mvp.di.component.ActivityComponent;
import br.com.evologica.mvp.di.component.DaggerActivityComponent; import br.com.evologica.mvp.di.component.DaggerActivityComponent;
import br.com.evologica.mvp.di.module.ActivityModule; import br.com.evologica.mvp.di.module.ActivityModule;
import br.com.evologica.mvp.utils.CommonUtils;
import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper; import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper;
public class BaseActivity extends AppCompatActivity implements MvpView, BaseFragment.Callback { public class BaseActivity extends AppCompatActivity implements MvpView, BaseFragment.Callback {
private ActivityComponent mActivityComponent; private ActivityComponent mActivityComponent;
private ProgressDialog mProgressDialog;
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
...@@ -51,12 +55,15 @@ public class BaseActivity extends AppCompatActivity implements MvpView, BaseFrag ...@@ -51,12 +55,15 @@ public class BaseActivity extends AppCompatActivity implements MvpView, BaseFrag
@Override @Override
public void showLoading() { public void showLoading() {
hideLoading();
mProgressDialog = CommonUtils.showLoadingDialog(this);
} }
@Override @Override
public void hideLoading() { public void hideLoading() {
if (mProgressDialog != null && mProgressDialog.isShowing()) {
mProgressDialog.cancel();
}
} }
@Override @Override
......
...@@ -23,6 +23,7 @@ public class LoginPresenter<V extends LoginMvpView> extends BasePresenter<V> imp ...@@ -23,6 +23,7 @@ public class LoginPresenter<V extends LoginMvpView> extends BasePresenter<V> imp
@Override @Override
public void onLogin(String email, String password) { public void onLogin(String email, String password) {
getMvpView().showLoading();
getCompositeDisposable().add( getCompositeDisposable().add(
getDataManager().getService().openSession(email, password) getDataManager().getService().openSession(email, password)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -31,11 +32,14 @@ public class LoginPresenter<V extends LoginMvpView> extends BasePresenter<V> imp ...@@ -31,11 +32,14 @@ public class LoginPresenter<V extends LoginMvpView> extends BasePresenter<V> imp
session -> { session -> {
getDataManager().setLoggedIn(); getDataManager().setLoggedIn();
getMvpView().openMainActivity(); getMvpView().openMainActivity();
getMvpView().hideLoading();
}, },
err -> { err -> {
getDataManager().setLoggedOut(); getDataManager().setLoggedOut();
getMvpView().onError(err.getMessage()); getMvpView().onError(err.getMessage());
getMvpView().hideLoading();
} }
) )
); );
} }
......
...@@ -21,6 +21,7 @@ public class MainPresenter<V extends MainMvpView> extends BasePresenter<V> imple ...@@ -21,6 +21,7 @@ public class MainPresenter<V extends MainMvpView> extends BasePresenter<V> imple
@Override @Override
public void onAttach(V mvpView) { public void onAttach(V mvpView) {
super.onAttach(mvpView); super.onAttach(mvpView);
getMvpView().showLoading();
getCompositeDisposable().add( getCompositeDisposable().add(
getDataManager().getService().openUseCase("3034", "ConsultarEventos") getDataManager().getService().openUseCase("3034", "ConsultarEventos")
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -39,20 +40,23 @@ public class MainPresenter<V extends MainMvpView> extends BasePresenter<V> imple ...@@ -39,20 +40,23 @@ public class MainPresenter<V extends MainMvpView> extends BasePresenter<V> imple
}, },
err -> { err -> {
System.out.println(err.getMessage()); System.out.println(err.getMessage());
} },
getMvpView()::hideLoading
); );
}, },
err -> { err -> {
getDataManager().setLoggedOut(); getDataManager().setLoggedOut();
getMvpView().openLoginActivity(); getMvpView().openLoginActivity();
System.out.println(err.getMessage()); System.out.println(err.getMessage());
getMvpView().hideLoading();
} }
) )
); );
} }
@Override @Override
public void onLogout() { public void onLogout() {
getMvpView().showLoading();
getCompositeDisposable().add( getCompositeDisposable().add(
getDataManager().getService().closeSession() getDataManager().getService().closeSession()
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -66,7 +70,8 @@ public class MainPresenter<V extends MainMvpView> extends BasePresenter<V> imple ...@@ -66,7 +70,8 @@ public class MainPresenter<V extends MainMvpView> extends BasePresenter<V> imple
getDataManager().setLoggedOut(); getDataManager().setLoggedOut();
getMvpView().openLoginActivity(); getMvpView().openLoginActivity();
System.out.println(err.toString()); System.out.println(err.toString());
} },
getMvpView()::hideLoading
) )
); );
......
package br.com.evologica.mvp.utils;
/**
* Created by marcussales on 02/03/2017.
*/
public final class AppConstants {
public static final String PREF_NAME = "pref";
private AppConstants(){
}
}
package br.com.evologica.mvp.utils;
import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import br.com.evologica.mvp.R;
/**
* Created by marcussales on 02/03/2017.
*/
public final class CommonUtils {
private static final String TAG = "CommonUtils";
private CommonUtils() {
// This utility class is not publicly instantiable
}
public static ProgressDialog showLoadingDialog(Context context) {
ProgressDialog progressDialog = new ProgressDialog(context);
progressDialog.show();
if (progressDialog.getWindow() != null) {
progressDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
}
progressDialog.setContentView(R.layout.progress_dialog);
progressDialog.setIndeterminate(true);
progressDialog.setCancelable(true);
progressDialog.setCanceledOnTouchOutside(false);
return progressDialog;
}
}
<?xml version="1.0" encoding="utf-8"?><!--
~ Copyright (C) 2017 MINDORKS NEXTGEN PRIVATE LIMITED
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ https://mindorks.com/license/apache-v2
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@android:color/transparent">
<ProgressBar
android:id="@+id/pb_loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:progressDrawable="@color/black_effective" />
</RelativeLayout>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment