Skip to content

Commit

Permalink
Merge pull request #644 from opensrp/move-presenter-cleanup-to-ondestroy
Browse files Browse the repository at this point in the history
Move presenter cleanup to ondestroy
  • Loading branch information
hilpitome committed Jul 21, 2022
2 parents baa6218 + 38fbe4b commit 869ae6b
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 28 deletions.
Expand Up @@ -9,12 +9,6 @@
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.widget.AppCompatRadioButton;
import androidx.appcompat.widget.Toolbar;
import android.text.SpannableString;
import android.text.TextUtils;
import android.text.style.ForegroundColorSpan;
Expand All @@ -33,6 +27,13 @@
import android.widget.ScrollView;
import android.widget.Toast;

import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.widget.AppCompatRadioButton;
import androidx.appcompat.widget.Toolbar;

import com.rengwuxian.materialedittext.MaterialEditText;
import com.vijay.jsonwizard.R;
import com.vijay.jsonwizard.activities.JsonFormActivity;
Expand Down Expand Up @@ -71,24 +72,21 @@ public class JsonFormFragment extends MvpFragment<JsonFormFragmentPresenter, Jso
implements CommonListener, JsonFormFragmentView<JsonFormFragmentViewState>, Handler.Callback {
private static final String TAG = "JsonFormFragment";
private static final int GRAY_OUT_ACTIVE_WHAT = 1212;

private static NativeFormsProperties nativeFormProperties;
private final Map<String, List<View>> lookUpMap = new HashMap<>();
private final Handler handler = new Handler(Looper.getMainLooper(), this);
public OnFieldsInvalid onFieldsInvalid;
protected LinearLayout mMainView;
protected ScrollView mScrollView;
private Menu mMenu;
private JsonApi mJsonApi;
private final Map<String, List<View>> lookUpMap = new HashMap<>();
private Button previousButton;
private Button nextButton;
private String stepName;
private LinearLayout bottomNavigation;
private BottomNavigationListener navigationListener;
private boolean shouldSkipStep = true;

private static NativeFormsProperties nativeFormProperties;

private final Handler handler = new Handler(Looper.getMainLooper(), this);

public static JsonFormFragment getFormFragment(String stepName) {
JsonFormFragment jsonFormFragment = new JsonFormFragment();
Bundle bundle = new Bundle();
Expand All @@ -98,6 +96,13 @@ public static JsonFormFragment getFormFragment(String stepName) {
return jsonFormFragment;
}

/**
* Getter for native form properties
*/
public static NativeFormsProperties getNativeFormProperties() {
return nativeFormProperties;
}

@Override
public boolean handleMessage(@NonNull @NotNull Message msg) {
//noinspection SwitchStatementWithTooFewBranches
Expand Down Expand Up @@ -827,7 +832,20 @@ public boolean onMenuItemClick(MenuItem item) {
@Override
public void onStop() {
super.onStop();
presenter.cleanUp();
}

@Override
public void onDestroy() {
super.onDestroy();
getPresenter().cleanUp();
}

public OnFieldsInvalid getOnFieldsInvalidCallback() {
return onFieldsInvalid;
}

public void setOnFieldsInvalid(OnFieldsInvalid onFieldsInvalid) {
this.onFieldsInvalid = onFieldsInvalid;
}

protected class BottomNavigationListener implements View.OnClickListener {
Expand All @@ -847,19 +865,4 @@ public void onClick(View view) {
}
}
}

public OnFieldsInvalid getOnFieldsInvalidCallback() {
return onFieldsInvalid;
}

public void setOnFieldsInvalid(OnFieldsInvalid onFieldsInvalid) {
this.onFieldsInvalid = onFieldsInvalid;
}

/**
* Getter for native form properties
*/
public static NativeFormsProperties getNativeFormProperties() {
return nativeFormProperties;
}
}
@@ -0,0 +1,27 @@
package com.vijay.jsonwizard.fragments;


import com.vijay.jsonwizard.BaseTest;
import com.vijay.jsonwizard.presenters.JsonFormFragmentPresenter;

import org.junit.Test;
import org.mockito.Mock;
import org.mockito.Mockito;

public class JsonFormFragmentTest extends BaseTest {

@Mock
private JsonFormFragmentPresenter presenter;

@Test
public void testOnDestroyInvokesPresenterCleanUpAtleastOnce() {

JsonFormFragment jsonFormFragment = Mockito.spy(new JsonFormFragment());
Mockito.doReturn(presenter).when(jsonFormFragment).getPresenter();

jsonFormFragment.onDestroy();

Mockito.verify(presenter, Mockito.atLeastOnce()).cleanUp();

}
}

0 comments on commit 869ae6b

Please sign in to comment.