diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/app-release.apk b/BeWoPlanerChat/bewoplaner-chat-android/app/app-release.apk index 59c1829..b8fa099 100644 Binary files a/BeWoPlanerChat/bewoplaner-chat-android/app/app-release.apk and b/BeWoPlanerChat/bewoplaner-chat-android/app/app-release.apk differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/data/AppPrefsConstants.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/data/AppPrefsConstants.java index ffbdad8..823d800 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/data/AppPrefsConstants.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/data/AppPrefsConstants.java @@ -17,4 +17,5 @@ public interface AppPrefsConstants { String APP_KILLED = "app_killed"; String UPLOAD_MAX_SIZE = "upload_max_size"; String IS_EMPLOYEE = "is_employee"; + String SHOW_LOGIN_AGAIN = "show_login_again"; } \ No newline at end of file diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/data/api/ApiModule.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/data/api/ApiModule.java index cf18945..d964e36 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/data/api/ApiModule.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/data/api/ApiModule.java @@ -52,6 +52,7 @@ public class ApiModule { } else { interceptor.setLevel(HttpLoggingInterceptor.Level.NONE); } + return interceptor; } @@ -65,12 +66,15 @@ public class ApiModule { if (token.isSet()) { builder.addHeader("Token", token.get()); } + if (customerId.isSet()) { builder.addHeader("CustomerID", customerId.get()); } + if (isHeaderSet) { return chain.proceed(builder.build()); } + return chain.proceed(original.newBuilder().build()); }; } diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/data/api/services/LoginService.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/data/api/services/LoginService.java index 1c74933..b8996f5 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/data/api/services/LoginService.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/data/api/services/LoginService.java @@ -6,7 +6,6 @@ import com.p3.bewoplaner.data.api.responses.ProfileResponse; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; -import retrofit2.http.Header; import retrofit2.http.POST; import retrofit2.http.Path; import rx.Observable; diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/data/prefs/AppPrefsModule.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/data/prefs/AppPrefsModule.java index 6e54fc1..a1efdc5 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/data/prefs/AppPrefsModule.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/data/prefs/AppPrefsModule.java @@ -123,4 +123,11 @@ public class AppPrefsModule { BooleanPreference provideIsEmployee(@AppPrefs SharedPreferences sharedPreferences) { return new BooleanPreference(sharedPreferences, AppPrefsConstants.IS_EMPLOYEE); } + + @Provides + @ApplicationScope + @Named(AppPrefsConstants.SHOW_LOGIN_AGAIN) + BooleanPreference provideShowLoginAgain(@AppPrefs SharedPreferences sharedPreferences) { + return new BooleanPreference(sharedPreferences, AppPrefsConstants.SHOW_LOGIN_AGAIN); + } } \ No newline at end of file diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/di/ApplicationComponent.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/di/ApplicationComponent.java index d508337..4bfd63c 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/di/ApplicationComponent.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/di/ApplicationComponent.java @@ -82,6 +82,9 @@ public interface ApplicationComponent { @Named(AppPrefsConstants.IS_EMPLOYEE) BooleanPreference provideIsEmployee(); + @Named(AppPrefsConstants.SHOW_LOGIN_AGAIN) + BooleanPreference provideShowLoginAgain(); + NotificationManager provideNotificationManager(); GroupRealmRepository provideGroupRealmRepository(); diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/chat/BaseChatActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/chat/BaseChatActivity.java index 398bca7..6dd437e 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/chat/BaseChatActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/chat/BaseChatActivity.java @@ -280,7 +280,6 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha @Override protected void onResume() { super.onResume(); -// mLoginPresenter.checkIfVoucherStillAvailable(this); } @Override @@ -323,7 +322,7 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha } @Override - public void logoutDirectly() { + public void logoutDirectly(boolean clearAllPrefs) { EventBus.getDefault().post(new LogoutDirectlyEvent()); finish(); } @@ -359,7 +358,6 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha @Override public void resendMessage(Message message) { -// mLoginPresenter.checkIfVoucherStillAvailable(this); if (!mChatPresenter.isAttached()) { mChatPresenter.attachView(this); } diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/chat/ChatPresenter.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/chat/ChatPresenter.java index 4e0ec48..38e7841 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/chat/ChatPresenter.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/chat/ChatPresenter.java @@ -267,10 +267,12 @@ public class ChatPresenter extends MVPAbstractPresenter Log.e(ChatPresenter.class.getSimpleName(), throwable.getMessage(), throwable); getView().hideLoading(); getView().hideMessagesLoading(); + if (mSystemUtils.isNetworkUnavailable()) { getView().showError(R.string.error_no_internet_connection); return; } + getView().showError(R.string.error_something_went_wrong); } diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/login/LoginActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/login/LoginActivity.java index f78dc87..101ba83 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/login/LoginActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/login/LoginActivity.java @@ -6,6 +6,7 @@ import com.p3.bewoplaner.BewoplanerApplication; import com.p3.bewoplaner.R; import com.p3.bewoplaner.data.AppPrefsConstants; import com.p3.bewoplaner.data.prefs.AppPrefs; +import com.p3.bewoplaner.data.prefs.BooleanPreference; import com.p3.bewoplaner.di.InjectionHelper; import com.p3.bewoplaner.page.main.MainActivity; import com.p3.bewoplaner.utils.AppStoppedService; @@ -31,6 +32,7 @@ import android.widget.ProgressBar; import java.util.Map; import javax.inject.Inject; +import javax.inject.Named; import butterknife.BindView; import butterknife.ButterKnife; @@ -57,6 +59,10 @@ public class LoginActivity extends AppCompatActivity implements LoginView { @BindView(R.id.login_save_password_checkBox) CheckBox mSavePasswordCheckbox; + @Inject + @Named(AppPrefsConstants.SHOW_LOGIN_AGAIN) + BooleanPreference mShowLoginAgainPreference; + @Inject LoginPresenter mLoginPresenter; @@ -76,6 +82,12 @@ public class LoginActivity extends AppCompatActivity implements LoginView { mLoginPresenter.attachView(this); decryptPreference(); ViewUtils.setProgressBarColor(mProgressBar, R.color.colorDefault); + + if(mShowLoginAgainPreference.get()) { + mShowLoginAgainPreference.set(false); + showError(R.string.login_again); + } + mCallback.logout(Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID), true, null); } diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/login/LoginPresenter.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/login/LoginPresenter.java index 2b75b31..65e31ff 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/login/LoginPresenter.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/login/LoginPresenter.java @@ -64,6 +64,10 @@ public class LoginPresenter extends MVPAbstractPresenter implements L @Inject RegisterService mRegisterService; + @Inject + @Named(AppPrefsConstants.SHOW_LOGIN_AGAIN) + BooleanPreference mShowLoginAgainPreference; + @Inject @Named(AppPrefsConstants.API_ENDPOINT) StringPreference mApiEndpointPreference; @@ -451,6 +455,7 @@ public class LoginPresenter extends MVPAbstractPresenter implements L @Override public void onNext(RegisterResponse registerResponse) { Log.d(TAG, "onNext: " + registerResponse); + getView().showError("Topkek"); } }); } @@ -493,17 +498,24 @@ public class LoginPresenter extends MVPAbstractPresenter implements L @Override public void onNext(JsonObject response) { if (!response.has("result") || response.get("result") == null) { - logoutNavigation.logoutDirectly(); + logoutNavigation.logoutDirectly(false); return; } int result = response.get("result").getAsInt(); + boolean shouldClearAllPrefs = false; + if(result == 0) { deleteData(true); + shouldClearAllPrefs = true; } - logoutNavigation.logoutDirectly(); + if(result == 1) { + mShowLoginAgainPreference.set(true); + } + + logoutNavigation.logoutDirectly(shouldClearAllPrefs); } }); diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/main/LogoutNavigation.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/main/LogoutNavigation.java index 6a09905..fc281c8 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/main/LogoutNavigation.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/main/LogoutNavigation.java @@ -2,6 +2,6 @@ package com.p3.bewoplaner.page.main; public interface LogoutNavigation { - void logoutDirectly(); + void logoutDirectly(boolean clearAllPrefs); } \ No newline at end of file diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/main/MainActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/main/MainActivity.java index 97d7b7d..09c10d6 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/main/MainActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/com/p3/bewoplaner/page/main/MainActivity.java @@ -53,8 +53,7 @@ import de.hdodenhof.circleimageview.CircleImageView; /** * Created by imarneanu on 2/9/17. */ -public class MainActivity extends AppCompatActivity - implements MainNavigation, LogoutNavigation { +public class MainActivity extends AppCompatActivity implements MainNavigation, LogoutNavigation { private static final String REDIRECT_TO_CHAT = "redirect_to_chat"; private static final String BUNDLE = "bundle"; @@ -228,6 +227,7 @@ public class MainActivity extends AppCompatActivity mLoginPresenter.logout(Settings.Secure.getString(MainActivity.this.getContentResolver(), Settings.Secure.ANDROID_ID), false, this); }, (dialog, which) -> dialog.dismiss()); + if (!isFinishing()) { alertDialog.show(); } @@ -241,8 +241,8 @@ public class MainActivity extends AppCompatActivity } @Override - public void logoutDirectly() { - mLoginPresenter.logout(Settings.Secure.getString(MainActivity.this.getContentResolver(), Settings.Secure.ANDROID_ID), true, this); + public void logoutDirectly(boolean clearAllPrefs) { + mLoginPresenter.logout(Settings.Secure.getString(MainActivity.this.getContentResolver(), Settings.Secure.ANDROID_ID), clearAllPrefs, this); } @Override @@ -251,7 +251,9 @@ public class MainActivity extends AppCompatActivity return; } - startActivity(new Intent(MainActivity.this, LoginActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); + Intent intent = new Intent(MainActivity.this, LoginActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + + startActivity(intent); finish(); } @@ -265,7 +267,7 @@ public class MainActivity extends AppCompatActivity @SuppressWarnings("unused") @Subscribe(threadMode = ThreadMode.MAIN) public void onLogoutDirectlyEvent(LogoutDirectlyEvent logoutDirectlyEvent) { - logoutDirectly(); + logoutDirectly(true); } @Override