Display/Editor views should not be cleared by closing activity if new activity has already been started
This commit is contained in:
@@ -22,7 +22,6 @@
|
||||
|
||||
package org.solovyev.android.calculator;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Application;
|
||||
import android.content.SharedPreferences;
|
||||
import android.preference.PreferenceManager;
|
||||
@@ -60,27 +59,6 @@ public class AndroidCalculator implements Calculator, CalculatorEventListener, S
|
||||
PreferenceManager.getDefaultSharedPreferences(application).registerOnSharedPreferenceChangeListener(this);
|
||||
}
|
||||
|
||||
public void setDisplay(@Nonnull Activity activity) {
|
||||
final AndroidCalculatorDisplayView displayView = (AndroidCalculatorDisplayView) activity.findViewById(R.id.calculator_display);
|
||||
displayView.init(activity);
|
||||
Locator.getInstance().getDisplay().setView(displayView);
|
||||
}
|
||||
|
||||
public void clearDisplay() {
|
||||
Locator.getInstance().getDisplay().setView(null);
|
||||
}
|
||||
|
||||
public void setEditor(@Nonnull Activity activity) {
|
||||
final AndroidCalculatorEditorView editorView = (AndroidCalculatorEditorView) activity.findViewById(R.id.calculator_editor);
|
||||
editorView.init();
|
||||
Locator.getInstance().getEditor().setView(editorView);
|
||||
}
|
||||
|
||||
public void clearEditor() {
|
||||
Locator.getInstance().getEditor().setView(null);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
**********************************************************************
|
||||
*
|
||||
|
@@ -42,6 +42,8 @@ public class CalculatorDisplayFragment extends Fragment {
|
||||
|
||||
@Nonnull
|
||||
private FragmentUi fragmentHelper;
|
||||
@Nonnull
|
||||
private AndroidCalculatorDisplayView displayView;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
@@ -67,7 +69,9 @@ public class CalculatorDisplayFragment extends Fragment {
|
||||
public void onViewCreated(View root, Bundle savedInstanceState) {
|
||||
super.onViewCreated(root, savedInstanceState);
|
||||
|
||||
((AndroidCalculator) Locator.getInstance().getCalculator()).setDisplay(getActivity());
|
||||
displayView = (AndroidCalculatorDisplayView) root.findViewById(R.id.calculator_display);
|
||||
displayView.init(getActivity());
|
||||
Locator.getInstance().getDisplay().setView(displayView);
|
||||
|
||||
fragmentHelper.onViewCreated(this, root);
|
||||
}
|
||||
@@ -93,7 +97,7 @@ public class CalculatorDisplayFragment extends Fragment {
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
((AndroidCalculator) Locator.getInstance().getCalculator()).clearDisplay();
|
||||
Locator.getInstance().getDisplay().clearView(displayView);
|
||||
super.onDestroyView();
|
||||
}
|
||||
|
||||
|
@@ -47,6 +47,9 @@ public class CalculatorEditorFragment extends Fragment {
|
||||
@Nonnull
|
||||
private ActivityMenu<Menu, MenuItem> menu = ListActivityMenu.fromEnum(CalculatorMenu.class, AndroidMenuHelper.getInstance());
|
||||
|
||||
@Nonnull
|
||||
private AndroidCalculatorEditorView editorView;
|
||||
|
||||
public CalculatorEditorFragment() {
|
||||
}
|
||||
|
||||
@@ -56,7 +59,9 @@ public class CalculatorEditorFragment extends Fragment {
|
||||
|
||||
fragmentUi.onViewCreated(this, view);
|
||||
|
||||
((AndroidCalculator) Locator.getInstance().getCalculator()).setEditor(getActivity());
|
||||
editorView = (AndroidCalculatorEditorView) view.findViewById(R.id.calculator_editor);
|
||||
editorView.init();
|
||||
Locator.getInstance().getEditor().setView(editorView);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -99,7 +104,7 @@ public class CalculatorEditorFragment extends Fragment {
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
((AndroidCalculator) Locator.getInstance().getCalculator()).clearEditor();
|
||||
Locator.getInstance().getEditor().clearView(editorView);
|
||||
super.onDestroyView();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user