Unverified Commit 25495f8f authored by Leonardo Aramaki's avatar Leonardo Aramaki Committed by GitHub

Merge pull request #657 from aniketsingh03/patch-5

[BUG] Resolves incorrect context issue in login activity
parents 8b7da88d 51a9b57d
......@@ -8,6 +8,7 @@ import android.support.v4.app.Fragment;
import chat.rocket.android.R;
import chat.rocket.android.fragment.server_config.LoginFragment;
import chat.rocket.android.fragment.server_config.RetryLoginFragment;
import chat.rocket.android.helper.BackStackHelper;
import chat.rocket.android.service.ConnectivityManager;
import chat.rocket.core.interactors.SessionInteractor;
import chat.rocket.persistence.realm.repositories.RealmSessionRepository;
......@@ -92,9 +93,14 @@ public class LoginActivity extends AbstractFragmentActivity implements LoginCont
@Override
protected boolean onBackPress() {
LoginFragment loginFragment = (LoginFragment) getSupportFragmentManager()
.findFragmentById(getLayoutContainerForFragment());
loginFragment.goBack();
if (BackStackHelper.FRAGMENT_TAG.equals("internal")) {
super.onBackPress();
BackStackHelper.FRAGMENT_TAG = "login";
} else if (BackStackHelper.FRAGMENT_TAG.equals("login")) {
LoginFragment loginFragment = (LoginFragment) getSupportFragmentManager()
.findFragmentById(getLayoutContainerForFragment());
loginFragment.goBack();
}
return true;
}
}
......@@ -6,39 +6,41 @@ import android.support.v4.app.Fragment;
import chat.rocket.android.R;
import chat.rocket.android.fragment.AbstractFragment;
import chat.rocket.android.helper.BackStackHelper;
import chat.rocket.android.helper.TextUtils;
public abstract class AbstractServerConfigFragment extends AbstractFragment {
public static final String KEY_HOSTNAME = "hostname";
public static final String KEY_HOSTNAME = "hostname";
protected String hostname;
protected String hostname;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle args = getArguments();
if (args == null) {
finish();
return;
Bundle args = getArguments();
if (args == null) {
finish();
return;
}
hostname = args.getString(KEY_HOSTNAME);
if (TextUtils.isEmpty(hostname)) {
finish();
}
}
hostname = args.getString(KEY_HOSTNAME);
if (TextUtils.isEmpty(hostname)) {
finish();
protected void showFragment(Fragment fragment) {
getFragmentManager().beginTransaction()
.add(R.id.content, fragment)
.commit();
}
protected void showFragmentWithBackStack(Fragment fragment) {
BackStackHelper.FRAGMENT_TAG = "internal";
getFragmentManager().beginTransaction()
.add(R.id.content, fragment)
.addToBackStack(null)
.commit();
}
}
protected void showFragment(Fragment fragment) {
getFragmentManager().beginTransaction()
.add(R.id.content, fragment)
.commit();
}
protected void showFragmentWithBackStack(Fragment fragment) {
getFragmentManager().beginTransaction()
.add(R.id.content, fragment)
.addToBackStack(null)
.commit();
}
}
package chat.rocket.android.fragment.server_config;
import android.content.Context;
import java.util.List;
import chat.rocket.android.shared.BaseContract;
......@@ -30,6 +33,6 @@ public interface LoginContract {
void login(String username, String password);
void goBack();
void goBack(Context ctx);
}
}
......@@ -160,8 +160,9 @@ class LoginFragment : AbstractServerConfigFragment(), LoginContract.View {
presenter.release()
super.onPause()
}
override fun goBack() {
presenter.goBack()
presenter.goBack(context)
}
}
package chat.rocket.android.fragment.server_config
import android.content.Context
import bolts.Continuation
import bolts.Task
import chat.rocket.android.BackgroundLooper
......@@ -32,7 +33,7 @@ class LoginPresenter(private val loginServiceConfigurationRepository: LoginServi
}
override fun goBack() {
override fun goBack(ctx: Context?) {
val context = RocketChatApplication.getInstance()
val hostname = RocketChatCache.getSelectedServerHostname()
hostname?.let {
......@@ -40,7 +41,7 @@ class LoginPresenter(private val loginServiceConfigurationRepository: LoginServi
RocketChatCache.clearSelectedHostnameReferences()
}
LaunchUtil.showMainActivity(context)
LaunchUtil.showMainActivity(ctx)
}
override fun login(username: String, password: String) {
......
package chat.rocket.android.helper;
public class BackStackHelper {
public static String FRAGMENT_TAG = "login";
}
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