FunctionsActivity
This commit is contained in:
parent
0b5bc2b621
commit
b5705702eb
@ -83,11 +83,11 @@
|
|||||||
android:label="@string/c_about" />
|
android:label="@string/c_about" />
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".math.edit.CalculatorFunctionsActivity"
|
android:name=".math.edit.FunctionsActivity"
|
||||||
android:label="@string/c_functions" />
|
android:label="@string/c_functions" />
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".math.edit.CalculatorOperatorsActivity"
|
android:name=".math.edit.OperatorsActivity"
|
||||||
android:label="@string/c_operators" />
|
android:label="@string/c_operators" />
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
|
@ -39,8 +39,8 @@ import org.solovyev.android.calculator.about.CalculatorAboutActivity;
|
|||||||
import org.solovyev.android.calculator.function.CppFunction;
|
import org.solovyev.android.calculator.function.CppFunction;
|
||||||
import org.solovyev.android.calculator.function.EditFunctionFragment;
|
import org.solovyev.android.calculator.function.EditFunctionFragment;
|
||||||
import org.solovyev.android.calculator.history.CalculatorHistoryActivity;
|
import org.solovyev.android.calculator.history.CalculatorHistoryActivity;
|
||||||
import org.solovyev.android.calculator.math.edit.CalculatorFunctionsActivity;
|
import org.solovyev.android.calculator.math.edit.FunctionsActivity;
|
||||||
import org.solovyev.android.calculator.math.edit.CalculatorOperatorsActivity;
|
import org.solovyev.android.calculator.math.edit.OperatorsActivity;
|
||||||
import org.solovyev.android.calculator.math.edit.CalculatorVarsActivity;
|
import org.solovyev.android.calculator.math.edit.CalculatorVarsActivity;
|
||||||
import org.solovyev.android.calculator.math.edit.VarEditDialogFragment;
|
import org.solovyev.android.calculator.math.edit.VarEditDialogFragment;
|
||||||
import org.solovyev.android.calculator.math.edit.VarsFragment;
|
import org.solovyev.android.calculator.math.edit.VarsFragment;
|
||||||
@ -106,7 +106,7 @@ public final class CalculatorActivityLauncher implements CalculatorEventListener
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void showFunctions(@Nonnull final Context context, boolean detached) {
|
public static void showFunctions(@Nonnull final Context context, boolean detached) {
|
||||||
final Intent intent = new Intent(context, CalculatorFunctionsActivity.class);
|
final Intent intent = new Intent(context, FunctionsActivity.class);
|
||||||
Activities.addIntentFlags(intent, detached, context);
|
Activities.addIntentFlags(intent, detached, context);
|
||||||
context.startActivity(intent);
|
context.startActivity(intent);
|
||||||
}
|
}
|
||||||
@ -116,7 +116,7 @@ public final class CalculatorActivityLauncher implements CalculatorEventListener
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void showOperators(@Nonnull final Context context, boolean detached) {
|
public static void showOperators(@Nonnull final Context context, boolean detached) {
|
||||||
final Intent intent = new Intent(context, CalculatorOperatorsActivity.class);
|
final Intent intent = new Intent(context, OperatorsActivity.class);
|
||||||
Activities.addIntentFlags(intent, detached, context);
|
Activities.addIntentFlags(intent, detached, context);
|
||||||
context.startActivity(intent);
|
context.startActivity(intent);
|
||||||
}
|
}
|
||||||
|
@ -27,45 +27,22 @@ import jscl.math.function.ArcTrigonometric;
|
|||||||
import jscl.math.function.Comparison;
|
import jscl.math.function.Comparison;
|
||||||
import jscl.math.function.Function;
|
import jscl.math.function.Function;
|
||||||
import jscl.math.function.Trigonometric;
|
import jscl.math.function.Trigonometric;
|
||||||
import org.solovyev.common.collections.Collections;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import java.util.*;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
public enum FunctionCategory implements Category {
|
public enum FunctionCategory implements Category {
|
||||||
|
|
||||||
trigonometric(100, R.string.c_fun_category_trig) {
|
my(R.string.c_fun_category_my) {
|
||||||
@Override
|
|
||||||
public boolean isInCategory(@Nonnull Function function) {
|
|
||||||
return (function instanceof Trigonometric || function instanceof ArcTrigonometric) && !hyperbolic_trigonometric.isInCategory(function);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
hyperbolic_trigonometric(300, R.string.c_fun_category_hyper_trig) {
|
|
||||||
|
|
||||||
private final Set<String> names = new HashSet<>(Arrays.asList("sinh", "cosh", "tanh", "coth", "asinh", "acosh", "atanh", "acoth"));
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isInCategory(@Nonnull Function function) {
|
|
||||||
return names.contains(function.getName());
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
comparison(200, R.string.c_fun_category_comparison) {
|
|
||||||
@Override
|
|
||||||
public boolean isInCategory(@Nonnull Function function) {
|
|
||||||
return function instanceof Comparison;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
my(0, R.string.c_fun_category_my) {
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInCategory(@Nonnull Function function) {
|
public boolean isInCategory(@Nonnull Function function) {
|
||||||
return !function.isSystem();
|
return !function.isSystem();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
common(50, R.string.c_fun_category_common) {
|
common(R.string.c_fun_category_common) {
|
||||||
@Override
|
@Override
|
||||||
public boolean isInCategory(@Nonnull Function function) {
|
public boolean isInCategory(@Nonnull Function function) {
|
||||||
for (FunctionCategory category : values()) {
|
for (FunctionCategory category : values()) {
|
||||||
@ -78,30 +55,38 @@ public enum FunctionCategory implements Category {
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
trigonometric(R.string.c_fun_category_trig) {
|
||||||
|
@Override
|
||||||
|
public boolean isInCategory(@Nonnull Function function) {
|
||||||
|
return (function instanceof Trigonometric || function instanceof ArcTrigonometric) && !hyperbolic_trigonometric.isInCategory(function);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
comparison(R.string.c_fun_category_comparison) {
|
||||||
|
@Override
|
||||||
|
public boolean isInCategory(@Nonnull Function function) {
|
||||||
|
return function instanceof Comparison;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
hyperbolic_trigonometric(R.string.c_fun_category_hyper_trig) {
|
||||||
|
|
||||||
|
private final Set<String> names = new HashSet<>(Arrays.asList("sinh", "cosh", "tanh", "coth", "asinh", "acosh", "atanh", "acoth"));
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isInCategory(@Nonnull Function function) {
|
||||||
|
return names.contains(function.getName());
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public final int tabOrder;
|
|
||||||
public final int title;
|
public final int title;
|
||||||
|
|
||||||
FunctionCategory(int tabOrder, @StringRes int title) {
|
FunctionCategory(@StringRes int title) {
|
||||||
this.tabOrder = tabOrder;
|
|
||||||
this.title = title;
|
this.title = title;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
public static List<FunctionCategory> getCategoriesByTabOrder() {
|
|
||||||
final List<FunctionCategory> result = Collections.asList(FunctionCategory.values());
|
|
||||||
|
|
||||||
java.util.Collections.sort(result, new Comparator<FunctionCategory>() {
|
|
||||||
@Override
|
|
||||||
public int compare(FunctionCategory category, FunctionCategory category1) {
|
|
||||||
return category.tabOrder - category1.tabOrder;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int title() {
|
public int title() {
|
||||||
return title;
|
return title;
|
||||||
|
@ -46,8 +46,7 @@ import jscl.math.function.CustomFunction;
|
|||||||
import jscl.math.function.Function;
|
import jscl.math.function.Function;
|
||||||
import org.solovyev.android.Check;
|
import org.solovyev.android.Check;
|
||||||
import org.solovyev.android.calculator.*;
|
import org.solovyev.android.calculator.*;
|
||||||
import org.solovyev.android.calculator.math.edit.CalculatorFunctionsActivity;
|
import org.solovyev.android.calculator.math.edit.FunctionsActivity;
|
||||||
import org.solovyev.android.calculator.math.edit.FunctionsFragment;
|
|
||||||
import org.solovyev.android.calculator.math.edit.VarEditorSaver;
|
import org.solovyev.android.calculator.math.edit.VarEditorSaver;
|
||||||
import org.solovyev.android.calculator.view.EditTextCompat;
|
import org.solovyev.android.calculator.view.EditTextCompat;
|
||||||
import org.solovyev.common.math.MathRegistry;
|
import org.solovyev.common.math.MathRegistry;
|
||||||
@ -107,10 +106,10 @@ public class EditFunctionFragment extends BaseDialogFragment implements View.OnC
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void showDialog(@Nonnull CppFunction function, @Nonnull Context context) {
|
public static void showDialog(@Nonnull CppFunction function, @Nonnull Context context) {
|
||||||
if (!(context instanceof CalculatorFunctionsActivity)) {
|
if (!(context instanceof FunctionsActivity)) {
|
||||||
final Intent intent = new Intent(context, CalculatorFunctionsActivity.class);
|
final Intent intent = new Intent(context, FunctionsActivity.class);
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
intent.putExtra(FunctionsFragment.EXTRA_FUNCTION, function);
|
intent.putExtra(FunctionsActivity.EXTRA_FUNCTION, function);
|
||||||
context.startActivity(intent);
|
context.startActivity(intent);
|
||||||
} else {
|
} else {
|
||||||
EditFunctionFragment.showDialog(function, ((AppCompatActivity) context).getSupportFragmentManager());
|
EditFunctionFragment.showDialog(function, ((AppCompatActivity) context).getSupportFragmentManager());
|
||||||
|
@ -55,7 +55,7 @@ import java.util.List;
|
|||||||
|
|
||||||
public abstract class BaseEntitiesFragment<E extends MathEntity> extends BaseFragment {
|
public abstract class BaseEntitiesFragment<E extends MathEntity> extends BaseFragment {
|
||||||
|
|
||||||
public static final String EXTRA_CATEGORY = "category";
|
public static final String ARG_CATEGORY = "category";
|
||||||
private static final Comparator<MathEntity> COMPARATOR = new Comparator<MathEntity>() {
|
private static final Comparator<MathEntity> COMPARATOR = new Comparator<MathEntity>() {
|
||||||
@Override
|
@Override
|
||||||
public int compare(MathEntity l, MathEntity r) {
|
public int compare(MathEntity l, MathEntity r) {
|
||||||
@ -85,7 +85,7 @@ public abstract class BaseEntitiesFragment<E extends MathEntity> extends BaseFra
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void putCategory(@Nonnull Bundle bundle, @Nonnull String categoryId) {
|
static void putCategory(@Nonnull Bundle bundle, @Nonnull String categoryId) {
|
||||||
bundle.putString(EXTRA_CATEGORY, categoryId);
|
bundle.putString(ARG_CATEGORY, categoryId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -94,7 +94,7 @@ public abstract class BaseEntitiesFragment<E extends MathEntity> extends BaseFra
|
|||||||
|
|
||||||
final Bundle bundle = getArguments();
|
final Bundle bundle = getArguments();
|
||||||
if (bundle != null) {
|
if (bundle != null) {
|
||||||
category = bundle.getString(EXTRA_CATEGORY);
|
category = bundle.getString(ARG_CATEGORY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -164,6 +164,39 @@ public abstract class BaseEntitiesFragment<E extends MathEntity> extends BaseFra
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void onEntityAdded(@NonNull E entity) {
|
||||||
|
final EntitiesAdapter adapter = getAdapter();
|
||||||
|
if (adapter == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!isInCategory(entity)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
adapter.add(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void onEntityChanged(@NonNull E entity) {
|
||||||
|
final EntitiesAdapter adapter = getAdapter();
|
||||||
|
if (adapter == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!isInCategory(entity)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
adapter.update(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void onEntityRemoved(@NonNull E entity) {
|
||||||
|
final EntitiesAdapter adapter = getAdapter();
|
||||||
|
if (adapter == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!isInCategory(entity)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
adapter.remove(entity);
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
protected abstract String getDescription(@NonNull E entity);
|
protected abstract String getDescription(@NonNull E entity);
|
||||||
|
|
||||||
@ -227,6 +260,7 @@ public abstract class BaseEntitiesFragment<E extends MathEntity> extends BaseFra
|
|||||||
private EntitiesAdapter(@Nonnull Context context,
|
private EntitiesAdapter(@Nonnull Context context,
|
||||||
@Nonnull List<E> list) {
|
@Nonnull List<E> list) {
|
||||||
this.list = list;
|
this.list = list;
|
||||||
|
Collections.sort(this.list, COMPARATOR);
|
||||||
this.inflater = LayoutInflater.from(context);
|
this.inflater = LayoutInflater.from(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -250,8 +284,8 @@ public abstract class BaseEntitiesFragment<E extends MathEntity> extends BaseFra
|
|||||||
return list.get(position);
|
return list.get(position);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void set(int position, @Nonnull E function) {
|
public void set(int position, @Nonnull E entity) {
|
||||||
list.set(position, function);
|
list.set(position, entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sort() {
|
public void sort() {
|
||||||
@ -260,11 +294,39 @@ public abstract class BaseEntitiesFragment<E extends MathEntity> extends BaseFra
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void add(@Nonnull E entity) {
|
public void add(@Nonnull E entity) {
|
||||||
list.add(entity);
|
final int itemCount = getItemCount();
|
||||||
|
for (int i = 0; i < itemCount; i++) {
|
||||||
|
final E adapterEntity = getItem(i);
|
||||||
|
if (COMPARATOR.compare(adapterEntity, entity) > 0) {
|
||||||
|
list.add(i, entity);
|
||||||
|
notifyItemInserted(i);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
list.add(itemCount, entity);
|
||||||
|
notifyItemInserted(itemCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void remove(@Nonnull E function) {
|
public void remove(@Nonnull E entity) {
|
||||||
list.remove(function);
|
final int i = list.indexOf(entity);
|
||||||
|
if (i >= 0) {
|
||||||
|
list.remove(i);
|
||||||
|
notifyItemRemoved(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void update(@NonNull E entity) {
|
||||||
|
if (!entity.isIdDefined()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (int i = 0; i < adapter.getItemCount(); i++) {
|
||||||
|
final E adapterEntity = adapter.getItem(i);
|
||||||
|
if (adapterEntity.isIdDefined() && entity.getId().equals(adapterEntity.getId())) {
|
||||||
|
adapter.set(i, entity);
|
||||||
|
notifyItemChanged(i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
package org.solovyev.android.calculator.math.edit;
|
package org.solovyev.android.calculator.math.edit;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Parcelable;
|
||||||
import org.solovyev.android.calculator.BaseActivity;
|
import org.solovyev.android.calculator.BaseActivity;
|
||||||
import org.solovyev.android.calculator.CalculatorFragmentType;
|
import org.solovyev.android.calculator.CalculatorFragmentType;
|
||||||
import org.solovyev.android.calculator.FunctionCategory;
|
import org.solovyev.android.calculator.FunctionCategory;
|
||||||
@ -30,31 +31,30 @@ import org.solovyev.android.calculator.R;
|
|||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
public class CalculatorFunctionsActivity extends BaseActivity {
|
public class FunctionsActivity extends BaseActivity {
|
||||||
|
|
||||||
public CalculatorFunctionsActivity() {
|
public static final String EXTRA_FUNCTION = "function";
|
||||||
super(R.layout.main_empty, CalculatorFunctionsActivity.class.getSimpleName());
|
|
||||||
|
public FunctionsActivity() {
|
||||||
|
super(R.layout.main_empty, FunctionsActivity.class.getSimpleName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
final Bundle bundle = getIntent().getExtras();
|
final Bundle extras = getIntent().getExtras();
|
||||||
|
final Parcelable function = extras != null ? extras.getParcelable(EXTRA_FUNCTION) : null;
|
||||||
|
|
||||||
final CalculatorFragmentType fragmentType = CalculatorFragmentType.functions;
|
final CalculatorFragmentType fragmentType = CalculatorFragmentType.functions;
|
||||||
|
|
||||||
for (FunctionCategory category : FunctionCategory.getCategoriesByTabOrder()) {
|
for (FunctionCategory category : FunctionCategory.values()) {
|
||||||
final Bundle fragmentParameters;
|
final Bundle arguments = new Bundle(2);
|
||||||
|
if (category == FunctionCategory.my && function != null) {
|
||||||
if (category == FunctionCategory.my && bundle != null) {
|
arguments.putParcelable(FunctionsFragment.ARG_FUNCTION, function);
|
||||||
BaseEntitiesFragment.putCategory(bundle, category.name());
|
|
||||||
fragmentParameters = bundle;
|
|
||||||
} else {
|
|
||||||
fragmentParameters = BaseEntitiesFragment.createBundleFor(category.name());
|
|
||||||
}
|
}
|
||||||
|
arguments.putString(FunctionsFragment.ARG_CATEGORY, category.name());
|
||||||
ui.addTab(this, fragmentType.createSubFragmentTag(category.name()), fragmentType.getFragmentClass(), fragmentParameters, category.title, R.id.main_layout);
|
ui.addTab(this, fragmentType.createSubFragmentTag(category.name()), fragmentType.getFragmentClass(), arguments, category.title, R.id.main_layout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -25,33 +25,25 @@ package org.solovyev.android.calculator.math.edit;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.v4.app.FragmentActivity;
|
import android.support.v4.app.FragmentActivity;
|
||||||
import android.view.ContextMenu;
|
import android.view.*;
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.MenuItem;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import com.squareup.otto.Bus;
|
import com.squareup.otto.Bus;
|
||||||
import com.squareup.otto.Subscribe;
|
import com.squareup.otto.Subscribe;
|
||||||
|
import jscl.math.function.Function;
|
||||||
|
import jscl.math.function.IFunction;
|
||||||
import org.solovyev.android.calculator.*;
|
import org.solovyev.android.calculator.*;
|
||||||
import org.solovyev.android.calculator.function.CppFunction;
|
import org.solovyev.android.calculator.function.CppFunction;
|
||||||
import org.solovyev.android.calculator.function.EditFunctionFragment;
|
import org.solovyev.android.calculator.function.EditFunctionFragment;
|
||||||
import org.solovyev.common.text.Strings;
|
import org.solovyev.common.text.Strings;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
import java.util.ArrayList;
|
||||||
import jscl.math.function.Function;
|
import java.util.List;
|
||||||
import jscl.math.function.IFunction;
|
|
||||||
|
|
||||||
public class FunctionsFragment extends BaseEntitiesFragment<Function> {
|
public class FunctionsFragment extends BaseEntitiesFragment<Function> {
|
||||||
|
|
||||||
public static final String EXTRA_FUNCTION = "function";
|
public static final String ARG_FUNCTION = "function";
|
||||||
@Inject
|
@Inject
|
||||||
FunctionsRegistry registry;
|
FunctionsRegistry registry;
|
||||||
@Inject
|
@Inject
|
||||||
@ -71,11 +63,11 @@ public class FunctionsFragment extends BaseEntitiesFragment<Function> {
|
|||||||
|
|
||||||
final Bundle bundle = getArguments();
|
final Bundle bundle = getArguments();
|
||||||
if (bundle != null) {
|
if (bundle != null) {
|
||||||
final CppFunction function = bundle.getParcelable(EXTRA_FUNCTION);
|
final CppFunction function = bundle.getParcelable(ARG_FUNCTION);
|
||||||
if (function != null) {
|
if (function != null) {
|
||||||
EditFunctionFragment.showDialog(function, getFragmentManager());
|
EditFunctionFragment.showDialog(function, getFragmentManager());
|
||||||
// in order to stop intent for other tabs
|
// don't want to show it again
|
||||||
bundle.remove(EXTRA_FUNCTION);
|
bundle.remove(ARG_FUNCTION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -111,7 +103,7 @@ public class FunctionsFragment extends BaseEntitiesFragment<Function> {
|
|||||||
protected void onClick(@Nonnull Function function) {
|
protected void onClick(@Nonnull Function function) {
|
||||||
keyboard.buttonPressed(function.getName());
|
keyboard.buttonPressed(function.getName());
|
||||||
final FragmentActivity activity = getActivity();
|
final FragmentActivity activity = getActivity();
|
||||||
if (activity instanceof CalculatorFunctionsActivity) {
|
if (activity instanceof FunctionsActivity) {
|
||||||
activity.finish();
|
activity.finish();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -171,41 +163,17 @@ public class FunctionsFragment extends BaseEntitiesFragment<Function> {
|
|||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onFunctionAdded(@NonNull final FunctionsRegistry.AddedEvent event) {
|
public void onFunctionAdded(@NonNull final FunctionsRegistry.AddedEvent event) {
|
||||||
if (!isInCategory(event.function)) {
|
onEntityAdded(event.function);
|
||||||
return;
|
|
||||||
}
|
|
||||||
final EntitiesAdapter adapter = getAdapter();
|
|
||||||
adapter.add(event.function);
|
|
||||||
adapter.sort();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onFunctionChanged(@NonNull final FunctionsRegistry.ChangedEvent event) {
|
public void onFunctionChanged(@NonNull final FunctionsRegistry.ChangedEvent event) {
|
||||||
if (!isInCategory(event.newFunction)) {
|
onEntityChanged(event.newFunction);
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!event.oldFunction.isIdDefined()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
final EntitiesAdapter adapter = getAdapter();
|
|
||||||
if (adapter == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
for (int i = 0; i < adapter.getItemCount(); i++) {
|
|
||||||
final Function adapterFunction = adapter.getItem(i);
|
|
||||||
if (adapterFunction.isIdDefined() && event.oldFunction.getId().equals(adapterFunction.getId())) {
|
|
||||||
adapter.set(i, adapterFunction);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
adapter.sort();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onFunctionRemoved(@NonNull final FunctionsRegistry.RemovedEvent event) {
|
public void onFunctionRemoved(@NonNull final FunctionsRegistry.RemovedEvent event) {
|
||||||
final EntitiesAdapter adapter = getAdapter();
|
onEntityRemoved(event.function);
|
||||||
adapter.remove(event.function);
|
|
||||||
adapter.notifyDataSetChanged();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -35,10 +35,10 @@ import org.solovyev.android.calculator.R;
|
|||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
public class CalculatorOperatorsActivity extends BaseActivity implements CalculatorEventListener {
|
public class OperatorsActivity extends BaseActivity implements CalculatorEventListener {
|
||||||
|
|
||||||
public CalculatorOperatorsActivity() {
|
public OperatorsActivity() {
|
||||||
super(R.layout.main_empty, CalculatorOperatorsActivity.class.getSimpleName());
|
super(R.layout.main_empty, OperatorsActivity.class.getSimpleName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
Loading…
Reference in New Issue
Block a user