From 828f9fa07bfdce020b112e4e0842af33218d3de7 Mon Sep 17 00:00:00 2001 From: serso Date: Wed, 24 Feb 2016 15:29:42 +0100 Subject: [PATCH] Plotter --- app/build.gradle | 2 +- app/misc/libs/plotter.aar | Bin 225213 -> 259383 bytes app/src/main/AndroidManifest.xml | 4 + .../android/calculator/ActivityLauncher.java | 8 +- .../android/calculator/AppComponent.java | 14 +- .../android/calculator/AppModule.java | 8 + .../android/calculator/BaseFragment.java | 42 +- .../calculator/CalculatorActivity.java | 31 +- .../functions/BaseFunctionFragment.java | 546 ++++++++++++++++++ .../functions/EditFunctionFragment.java | 531 +---------------- .../functions/FunctionsFragment.java | 21 +- .../calculator/plot/ExpressionFunction.java | 130 +++++ .../android/calculator/plot/PlotActivity.java | 109 ++++ .../plot/PlotDimensionsFragment.java | 288 +++++++++ .../plot/PlotEditFunctionFragment.java | 201 +++++++ .../plot/PlotFunctionsFragment.java | 232 ++++++++ .../uz/shift/colorpicker/LineColorPicker.java | 405 +++++++++++++ .../colorpicker/OnColorChangedListener.java | 5 + .../java/uz/shift/colorpicker/Palette.java | 24 + .../res/drawable-hdpi/ic_list_white_24dp.png | Bin 0 -> 116 bytes .../drawable-hdpi/ic_mode_edit_white_18dp.png | Bin 0 -> 188 bytes .../ic_straighten_white_24dp.png | Bin 0 -> 156 bytes .../res/drawable-mdpi/ic_list_white_24dp.png | Bin 0 -> 86 bytes .../drawable-mdpi/ic_mode_edit_white_18dp.png | Bin 0 -> 154 bytes .../ic_straighten_white_24dp.png | Bin 0 -> 120 bytes .../res/drawable-xhdpi/ic_list_white_24dp.png | Bin 0 -> 95 bytes .../ic_mode_edit_white_18dp.png | Bin 0 -> 219 bytes .../ic_straighten_white_24dp.png | Bin 0 -> 161 bytes .../drawable-xxhdpi/ic_list_white_24dp.png | Bin 0 -> 94 bytes .../ic_mode_edit_white_18dp.png | Bin 0 -> 269 bytes .../ic_straighten_white_24dp.png | Bin 0 -> 223 bytes .../drawable-xxxhdpi/ic_list_white_24dp.png | Bin 0 -> 100 bytes .../ic_mode_edit_white_18dp.png | Bin 0 -> 302 bytes .../ic_straighten_white_24dp.png | Bin 0 -> 276 bytes app/src/main/res/layout/dialog_functions.xml | 4 + .../res/layout/dialog_functions_function.xml | 27 + .../res/layout/fragment_function_edit.xml | 45 +- .../fragment_function_edit_base_controls.xml | 74 +++ app/src/main/res/layout/fragment_plot.xml | 64 ++ .../res/layout/fragment_plot_dimensions.xml | 68 +++ .../layout/fragment_plot_function_edit.xml | 90 +++ app/src/main/res/menu/plot.xml | 6 - app/src/main/res/values/attrs_lcp.xml | 13 + app/src/main/res/values/dimens.xml | 2 + app/src/main/res/values/styles.xml | 42 +- .../main/res/values/text_non_translatable.xml | 8 + app/src/main/res/values/text_strings.xml | 2 + 47 files changed, 2450 insertions(+), 596 deletions(-) create mode 100644 app/src/main/java/org/solovyev/android/calculator/functions/BaseFunctionFragment.java create mode 100644 app/src/main/java/org/solovyev/android/calculator/plot/ExpressionFunction.java create mode 100644 app/src/main/java/org/solovyev/android/calculator/plot/PlotActivity.java create mode 100644 app/src/main/java/org/solovyev/android/calculator/plot/PlotDimensionsFragment.java create mode 100644 app/src/main/java/org/solovyev/android/calculator/plot/PlotEditFunctionFragment.java create mode 100644 app/src/main/java/org/solovyev/android/calculator/plot/PlotFunctionsFragment.java create mode 100644 app/src/main/java/uz/shift/colorpicker/LineColorPicker.java create mode 100644 app/src/main/java/uz/shift/colorpicker/OnColorChangedListener.java create mode 100644 app/src/main/java/uz/shift/colorpicker/Palette.java create mode 100644 app/src/main/res/drawable-hdpi/ic_list_white_24dp.png create mode 100644 app/src/main/res/drawable-hdpi/ic_mode_edit_white_18dp.png create mode 100644 app/src/main/res/drawable-hdpi/ic_straighten_white_24dp.png create mode 100644 app/src/main/res/drawable-mdpi/ic_list_white_24dp.png create mode 100644 app/src/main/res/drawable-mdpi/ic_mode_edit_white_18dp.png create mode 100644 app/src/main/res/drawable-mdpi/ic_straighten_white_24dp.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_list_white_24dp.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_mode_edit_white_18dp.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_straighten_white_24dp.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_list_white_24dp.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_mode_edit_white_18dp.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_straighten_white_24dp.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_list_white_24dp.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_mode_edit_white_18dp.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_straighten_white_24dp.png create mode 100644 app/src/main/res/layout/dialog_functions.xml create mode 100644 app/src/main/res/layout/dialog_functions_function.xml create mode 100644 app/src/main/res/layout/fragment_function_edit_base_controls.xml create mode 100644 app/src/main/res/layout/fragment_plot.xml create mode 100644 app/src/main/res/layout/fragment_plot_dimensions.xml create mode 100644 app/src/main/res/layout/fragment_plot_function_edit.xml create mode 100644 app/src/main/res/values/attrs_lcp.xml diff --git a/app/build.gradle b/app/build.gradle index 67b8e287..e77f8274 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -85,7 +85,7 @@ dependencies { exclude(module: 'xercesImpl') } compile 'org.solovyev.android:checkout:0.7.2@aar' - compile 'org.solovyev.android:material:0.1.3@aar' + compile 'org.solovyev.android:material:0.1.4@aar' compile 'com.google.android.gms:play-services-ads:8.4.0' compile 'com.google.android.gms:play-services-base:8.4.0' compile 'com.google.android.gms:play-services-analytics:8.4.0' diff --git a/app/misc/libs/plotter.aar b/app/misc/libs/plotter.aar index a6e9dfd48c0222ca95553b67cd82b2e44ec66320..77e83555f5faa72e9b931d29bfdd3f70506fc54d 100644 GIT binary patch delta 177334 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

@oHX$tNG=4N)K@voikj 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

lIm1KqK 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 z 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%0Aph(xBn+1X&{cD zw$xsv5jcWT{x?8Y{`wQ}H#h#L5dO`Lf5u-IT|OayGvz-KX@4ysO8u1nD@T-MAt3*P QkUk$4U;seprvL!>Uxq+m5dZ)H delta 142874 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 _A?Q5&%GtX`sQzub2l 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 z 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

%s$lRuUlBi}lsE?>(aP$Qg2#1Zw(zL{g3^-t> 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 v=|V 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

Gb%s!XNIb-&f*MIK|61U_1FIJ(k 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

AY$ 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%0Ac=lb87UhZ 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 + + P getParcelable(@NonNull Bundle bundle, + @NonNull String key) { + final P parcelable = bundle.getParcelable(key); + Check.isNotNull(parcelable); + return parcelable; + } + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -40,7 +57,8 @@ public abstract class BaseFragment extends Fragment { } @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { final View view = inflater.inflate(layout, container, false); adUi.onCreateView(view); return view; diff --git a/app/src/main/java/org/solovyev/android/calculator/CalculatorActivity.java b/app/src/main/java/org/solovyev/android/calculator/CalculatorActivity.java index ccd6ca26..afc0ba7c 100644 --- a/app/src/main/java/org/solovyev/android/calculator/CalculatorActivity.java +++ b/app/src/main/java/org/solovyev/android/calculator/CalculatorActivity.java @@ -22,6 +22,15 @@ package org.solovyev.android.calculator; +import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; +import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; +import static android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON; +import static org.solovyev.android.calculator.Preferences.Gui.preventScreenFromFading; +import static org.solovyev.android.calculator.release.ReleaseNotes.hasReleaseNotes; +import static org.solovyev.android.wizard.WizardUi.continueWizard; +import static org.solovyev.android.wizard.WizardUi.createLaunchIntent; +import static org.solovyev.android.wizard.WizardUi.startWizard; + import android.content.Context; import android.content.SharedPreferences; import android.content.res.Resources; @@ -33,11 +42,15 @@ import android.support.v7.app.AlertDialog; import android.support.v7.widget.CardView; import android.support.v7.widget.Toolbar; import android.text.method.LinkMovementMethod; -import android.view.*; +import android.view.KeyEvent; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; import android.widget.FrameLayout; import android.widget.TextView; -import butterknife.Bind; -import butterknife.ButterKnife; + import org.solovyev.android.Activities; import org.solovyev.android.Android; import org.solovyev.android.calculator.converter.ConverterFragment; @@ -49,17 +62,13 @@ import org.solovyev.android.wizard.Wizard; import org.solovyev.android.wizard.Wizards; import org.solovyev.common.Objects; +import butterknife.Bind; +import butterknife.ButterKnife; + import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.inject.Inject; -import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; -import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; -import static android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON; -import static org.solovyev.android.calculator.Preferences.Gui.preventScreenFromFading; -import static org.solovyev.android.calculator.release.ReleaseNotes.hasReleaseNotes; -import static org.solovyev.android.wizard.WizardUi.*; - public class CalculatorActivity extends BaseActivity implements SharedPreferences.OnSharedPreferenceChangeListener, Toolbar.OnMenuItemClickListener { @Inject @@ -278,7 +287,7 @@ public class CalculatorActivity extends BaseActivity implements SharedPreference launcher.showHistory(); return true; case R.id.menu_plotter: - Locator.getInstance().getPlotter().plot(); + launcher.showPlotter(); return true; case R.id.menu_conversion_tool: ConverterFragment.show(this); diff --git a/app/src/main/java/org/solovyev/android/calculator/functions/BaseFunctionFragment.java b/app/src/main/java/org/solovyev/android/calculator/functions/BaseFunctionFragment.java new file mode 100644 index 00000000..5c23a2e0 --- /dev/null +++ b/app/src/main/java/org/solovyev/android/calculator/functions/BaseFunctionFragment.java @@ -0,0 +1,546 @@ +/* + * Copyright 2013 serso aka se.solovyev + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * Contact details + * + * Email: se.solovyev@gmail.com + * Site: http://se.solovyev.org + */ + +package org.solovyev.android.calculator.functions; + +import static org.solovyev.android.calculator.functions.CppFunction.NO_ID; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.DialogInterface; +import android.content.res.Resources; +import android.os.Bundle; +import android.support.annotation.LayoutRes; +import android.support.annotation.NonNull; +import android.support.design.widget.TextInputLayout; +import android.support.v7.app.AlertDialog; +import android.text.Editable; +import android.text.TextUtils; +import android.view.ContextMenu; +import android.view.KeyEvent; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewParent; +import android.view.inputmethod.InputMethodManager; +import android.widget.EditText; + +import org.solovyev.android.calculator.AppComponent; +import org.solovyev.android.calculator.BaseDialogFragment; +import org.solovyev.android.calculator.Calculator; +import org.solovyev.android.calculator.Engine; +import org.solovyev.android.calculator.FloatingCalculatorKeyboard; +import org.solovyev.android.calculator.Keyboard; +import org.solovyev.android.calculator.ParseException; +import org.solovyev.android.calculator.R; +import org.solovyev.android.calculator.VariablesRegistry; +import org.solovyev.android.calculator.keyboard.FloatingKeyboardWindow; +import org.solovyev.android.calculator.view.EditTextCompat; +import org.solovyev.common.math.MathRegistry; + +import butterknife.Bind; +import butterknife.ButterKnife; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import javax.inject.Inject; + +public abstract class BaseFunctionFragment extends BaseDialogFragment implements View.OnClickListener, View.OnFocusChangeListener, View.OnKeyListener { + + protected static final String ARG_FUNCTION = "function"; + private static final int MENU_FUNCTION = Menu.FIRST; + private static final int MENU_CONSTANT = Menu.FIRST + 1; + private static final int MENU_CATEGORY = Menu.FIRST + 2; + + @NonNull + private final FloatingKeyboardWindow keyboardWindow = new FloatingKeyboardWindow(null); + @NonNull + private final KeyboardUser keyboardUser = new KeyboardUser(); + @Bind(R.id.function_params) + FunctionParamsView paramsView; + @Bind(R.id.function_name_label) + TextInputLayout nameLabel; + @Bind(R.id.function_name) + public EditText nameView; + @Bind(R.id.function_body_label) + public TextInputLayout bodyLabel; + @Bind(R.id.function_body) + public EditTextCompat bodyView; + @Bind(R.id.function_description) + EditText descriptionView; + @Inject + Calculator calculator; + @Inject + Keyboard keyboard; + @Inject + FunctionsRegistry functionsRegistry; + @Inject + VariablesRegistry variablesRegistry; + @Nullable + protected CppFunction function; + @LayoutRes + private final int layout; + + protected BaseFunctionFragment(@LayoutRes int layout) { + this.layout = layout; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + final Bundle arguments = getArguments(); + if (arguments != null) { + function = arguments.getParcelable(ARG_FUNCTION); + } + } + + @Override + protected void inject(@NonNull AppComponent component) { + super.inject(component); + component.inject(this); + } + + @Override + protected void onPrepareDialog(@NonNull AlertDialog.Builder builder) { + builder.setNegativeButton(R.string.c_cancel, null); + builder.setPositiveButton(R.string.ok, null); + builder.setTitle(isNewFunction() ? R.string.function_create_function : + R.string.function_edit_function); + } + + protected final boolean isNewFunction() { + return function == null || function.id == NO_ID; + } + + @NonNull + @Override + public AlertDialog onCreateDialog(Bundle savedInstanceState) { + final AlertDialog dialog = super.onCreateDialog(savedInstanceState); + dialog.setCanceledOnTouchOutside(false); + return dialog; + } + + @Override + protected void onShowDialog(@NonNull AlertDialog dialog, boolean firstTime) { + if (firstTime) { + nameView.selectAll(); + showIme(nameView); + } + } + + @Override + public void onFocusChange(View v, boolean hasFocus) { + if (v instanceof EditText && FunctionParamsView.PARAM_VIEW_TAG.equals(v.getTag())) { + final ViewParent parentView = v.getParent(); + if (parentView instanceof TextInputLayout) { + if (hasFocus) { + clearError((TextInputLayout) parentView); + } else { + validateParameters(); + } + } + return; + } + + final int id = v.getId(); + switch (id) { + case R.id.function_name: + if (hasFocus) { + clearError(nameLabel); + } else { + validateName(); + } + break; + case R.id.function_body: + if (hasFocus) { + clearError(bodyLabel); + showKeyboard(); + } else { + keyboardWindow.hide(); + validateBody(); + } + break; + } + } + + private void showKeyboard() { + keyboardWindow.show(new FloatingCalculatorKeyboard(keyboardUser, collectParameters()), + getDialog()); + } + + @Nonnull + protected final List collectParameters() { + final List parameters = new ArrayList<>(); + for (String parameter : paramsView.getParams()) { + if (!TextUtils.isEmpty(parameter)) { + parameters.add(parameter); + } + } + return parameters; + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.function_body: + showKeyboard(); + break; + default: + super.onClick(v); + break; + } + } + + @Override + public void onClick(DialogInterface dialog, int which) { + switch (which) { + case DialogInterface.BUTTON_POSITIVE: + tryClose(); + break; + default: + super.onClick(dialog, which); + break; + } + } + + @Override + public boolean onKey(View v, int keyCode, KeyEvent event) { + if (v.getId() == R.id.function_body) { + if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK && keyboardWindow.isShown()) { + keyboardWindow.hide(); + return true; + } + } + return false; + } + + protected void tryClose() { + if (!validate()) { + return; + } + final CppFunction function = collectData(); + if (function == null) { + return; + } + if (applyData(function)) { + dismiss(); + } + } + + @Nullable + private CppFunction collectData() { + try { + final String body = calculator.prepare(bodyView.getText().toString()).getValue(); + + return CppFunction.builder(nameView.getText().toString(), body) + .withId(isNewFunction() ? NO_ID : function.id) + .withParameters(collectParameters()) + .withDescription(descriptionView.getText().toString()).build(); + } catch (RuntimeException e) { + setError(bodyLabel, e.getLocalizedMessage()); + } + return null; + } + + private boolean validate() { + return validateName() & validateParameters() & validateBody(); + } + + protected boolean validateName() { + final String name = nameView.getText().toString(); + if (!Engine.isValidName(name)) { + setError(nameLabel, getString(R.string.function_name_is_not_valid)); + return false; + } + clearError(nameLabel); + return true; + } + + private boolean validateBody() { + final String body = bodyView.getText().toString(); + if (TextUtils.isEmpty(body)) { + setError(bodyLabel, getString(R.string.function_is_empty)); + return false; + } + try { + calculator.prepare(body); + clearError(bodyLabel); + return true; + } catch (ParseException e) { + setError(bodyLabel, e.getLocalizedMessage()); + return false; + } + } + + private boolean validateParameters() { + boolean valid = true; + final List parameters = paramsView.getParams(); + final Set usedParameters = new HashSet<>(); + for (int i = 0; i < parameters.size(); i++) { + final String parameter = parameters.get(i); + final TextInputLayout paramLabel = paramsView.getParamLabel(i); + if (TextUtils.isEmpty(parameter)) { + clearError(paramLabel); + } else if (!Engine.isValidName(parameter)) { + valid = false; + setError(paramLabel, getString(R.string.invalid_name)); + } else if (usedParameters.contains(parameter)) { + valid = false; + setError(paramLabel, getString(R.string.function_duplicate_parameter)); + } else { + usedParameters.add(parameter); + clearError(paramLabel); + } + } + return valid; + } + + @SuppressLint("InflateParams") + @NonNull + @Override + protected View onCreateDialogView(@NonNull Context context, @NonNull LayoutInflater inflater, @Nullable Bundle savedInstanceState) { + final View view = inflater.inflate(layout, null); + ButterKnife.bind(this, view); + + if (savedInstanceState == null && function != null) { + paramsView.addParams(function.getParameters()); + nameView.setText(function.getName()); + descriptionView.setText(function.getDescription()); + bodyView.setText(function.getBody()); + } + nameView.setOnFocusChangeListener(this); + paramsView.setOnFocusChangeListener(this); + bodyView.setOnClickListener(this); + bodyView.setOnFocusChangeListener(this); + bodyView.setOnKeyListener(this); + bodyView.dontShowSoftInputOnFocusCompat(); + descriptionView.setOnFocusChangeListener(this); + + return view; + } + + private class KeyboardUser implements FloatingCalculatorKeyboard.User, MenuItem.OnMenuItemClickListener { + @NonNull + @Override + public Context getContext() { + return getActivity(); + } + + @NonNull + @Override + public Resources getResources() { + return BaseFunctionFragment.this.getResources(); + } + + @NonNull + @Override + public EditText getEditor() { + return bodyView; + } + + @NonNull + @Override + public ViewGroup getKeyboard() { + return keyboardWindow.getContentView(); + } + + @Override + public void insertOperator(char operator) { + insertOperator(String.valueOf(operator)); + } + + public int clampSelection(int selection) { + return selection < 0 ? 0 : selection; + } + + @Override + public void insertOperator(@NonNull String operator) { + final int start = clampSelection(bodyView.getSelectionStart()); + final int end = clampSelection(bodyView.getSelectionEnd()); + final Editable e = bodyView.getText(); + e.replace(start, end, getOperator(start, end, e, operator)); + } + + @NonNull + private String getOperator(int start, int end, @NonNull Editable e, @NonNull CharSequence operator) { + boolean spaceBefore = true; + boolean spaceAfter = true; + if (start > 0 && Character.isSpaceChar(e.charAt(start - 1))) { + spaceBefore = false; + } + if (end < e.length() && Character.isSpaceChar(e.charAt(end))) { + spaceAfter = false; + } + + if (spaceBefore && spaceAfter) { + return " " + operator + " "; + } + if (spaceBefore) { + return " " + operator; + } + if (spaceAfter) { + return operator + " "; + } + return String.valueOf(operator); + } + + @Override + public void showConstants(@NonNull View v) { + bodyView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() { + @Override + public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { + final int id = v.getId(); + if (id == R.id.function_body) { + menu.clear(); + addEntities(menu, getNamesSorted(variablesRegistry), MENU_CONSTANT); + unregisterForContextMenu(bodyView); + } + } + }); + bodyView.showContextMenu(); + } + + @Nonnull + private List getNamesSorted(@NonNull MathRegistry registry) { + final List names = new ArrayList<>(registry.getNames()); + Collections.sort(names); + return names; + } + + @Override + public void showFunctions(@NonNull View v) { + bodyView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() { + @Override + public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { + final int id = v.getId(); + if (id == R.id.function_body) { + menu.clear(); + addEntities(menu, getNamesSorted(functionsRegistry), MENU_FUNCTION); + unregisterForContextMenu(bodyView); + } + } + }); + bodyView.showContextMenu(); + } + + private void addEntities(@NonNull Menu menu, @NonNull List entities, int groupId) { + for (String entity : entities) { + menu.add(groupId, Menu.NONE, Menu.NONE, entity).setOnMenuItemClickListener(KeyboardUser.this); + } + } + + @Override + public void showFunctionsConstants(@NonNull View v) { + bodyView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() { + @Override + public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { + final int id = v.getId(); + if (id == R.id.function_body) { + menu.clear(); + // can't use sub-menus as AlertDialog doesn't support them + menu.add(MENU_CATEGORY, MENU_CONSTANT, Menu.NONE, R.string.c_vars_and_constants).setOnMenuItemClickListener(KeyboardUser.this); + menu.add(MENU_CATEGORY, MENU_FUNCTION, Menu.NONE, R.string.c_functions).setOnMenuItemClickListener(KeyboardUser.this); + unregisterForContextMenu(bodyView); + } + } + }); + bodyView.showContextMenu(); + } + + @Override + public void insertText(@NonNull CharSequence text, int selectionOffset) { + final int start = clampSelection(bodyView.getSelectionStart()); + final int end = clampSelection(bodyView.getSelectionEnd()); + final Editable e = bodyView.getText(); + e.replace(start, end, text); + if (selectionOffset != 0) { + final int selection = clampSelection(bodyView.getSelectionEnd()); + final int newSelection = selection + selectionOffset; + if (newSelection >= 0 && newSelection < e.length()) { + bodyView.setSelection(newSelection); + } + } + } + + @Override + public boolean isVibrateOnKeypress() { + return keyboard.isVibrateOnKeypress(); + } + + @Override + public void done() { + keyboardWindow.hide(); + validateBody(); + } + + @Override + public void showIme() { + final InputMethodManager keyboard = (InputMethodManager) + getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + keyboard.showSoftInput(getEditor(), InputMethodManager.SHOW_FORCED); + keyboardWindow.hide(); + } + + @Override + public boolean onMenuItemClick(final MenuItem item) { + final int groupId = item.getGroupId(); + final CharSequence title = item.getTitle(); + switch (groupId) { + case MENU_FUNCTION: + final int argsListIndex = title.toString().indexOf("("); + if (argsListIndex < 0) { + keyboardUser.insertText(title + "()", -1); + } else { + keyboardUser.insertText(title.subSequence(0, argsListIndex) + "()", -1); + } + return true; + case MENU_CONSTANT: + keyboardUser.insertText(title.toString(), 0); + return true; + case MENU_CATEGORY: + bodyView.post(new Runnable() { + @Override + public void run() { + final int itemId = item.getItemId(); + if (itemId == MENU_FUNCTION) { + showFunctions(bodyView); + } else if (itemId == MENU_CONSTANT) { + showConstants(bodyView); + } + } + }); + return true; + } + return false; + } + } + + protected abstract boolean applyData(@NonNull CppFunction function); +} diff --git a/app/src/main/java/org/solovyev/android/calculator/functions/EditFunctionFragment.java b/app/src/main/java/org/solovyev/android/calculator/functions/EditFunctionFragment.java index 4fcc5033..38dca236 100644 --- a/app/src/main/java/org/solovyev/android/calculator/functions/EditFunctionFragment.java +++ b/app/src/main/java/org/solovyev/android/calculator/functions/EditFunctionFragment.java @@ -1,131 +1,33 @@ -/* - * Copyright 2013 serso aka se.solovyev - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * Contact details - * - * Email: se.solovyev@gmail.com - * Site: http://se.solovyev.org - */ - package org.solovyev.android.calculator.functions; -import static org.solovyev.android.calculator.functions.CppFunction.NO_ID; - -import android.annotation.SuppressLint; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; -import android.content.res.Resources; import android.os.Bundle; import android.support.annotation.NonNull; -import android.support.design.widget.TextInputLayout; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v7.app.AlertDialog; -import android.text.Editable; -import android.text.TextUtils; -import android.view.ContextMenu; -import android.view.KeyEvent; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.view.ViewGroup; -import android.view.ViewParent; -import android.view.inputmethod.InputMethodManager; -import android.widget.EditText; import org.solovyev.android.Activities; import org.solovyev.android.Check; import org.solovyev.android.calculator.App; -import org.solovyev.android.calculator.AppComponent; -import org.solovyev.android.calculator.BaseDialogFragment; -import org.solovyev.android.calculator.Calculator; -import org.solovyev.android.calculator.Engine; -import org.solovyev.android.calculator.FloatingCalculatorKeyboard; -import org.solovyev.android.calculator.Keyboard; -import org.solovyev.android.calculator.ParseException; import org.solovyev.android.calculator.R; -import org.solovyev.android.calculator.VariablesRegistry; import org.solovyev.android.calculator.entities.EntityRemovalDialog; -import org.solovyev.android.calculator.keyboard.FloatingKeyboardWindow; -import org.solovyev.android.calculator.view.EditTextCompat; -import org.solovyev.common.math.MathRegistry; -import butterknife.Bind; -import butterknife.ButterKnife; import jscl.math.function.Function; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - import javax.annotation.Nonnull; import javax.annotation.Nullable; -import javax.inject.Inject; -public class EditFunctionFragment extends BaseDialogFragment implements View.OnClickListener, View.OnFocusChangeListener, View.OnKeyListener { +public class EditFunctionFragment extends BaseFunctionFragment { - private static final String ARG_FUNCTION = "function"; - private static final int MENU_FUNCTION = Menu.FIRST; - private static final int MENU_CONSTANT = Menu.FIRST + 1; - private static final int MENU_CATEGORY = Menu.FIRST + 2; - - @NonNull - private final FloatingKeyboardWindow keyboardWindow = new FloatingKeyboardWindow(null); - @NonNull - private final KeyboardUser keyboardUser = new KeyboardUser(); - @Bind(R.id.function_params) - FunctionParamsView paramsView; - @Bind(R.id.function_name_label) - TextInputLayout nameLabel; - @Bind(R.id.function_name) - EditText nameView; - @Bind(R.id.function_body_label) - TextInputLayout bodyLabel; - @Bind(R.id.function_body) - EditTextCompat bodyView; - @Bind(R.id.function_description) - EditText descriptionView; - @Inject - Calculator calculator; - @Inject - Keyboard keyboard; - @Inject - FunctionsRegistry functionsRegistry; - @Inject - VariablesRegistry variablesRegistry; - @Nullable - private CppFunction function; - - @Nonnull - private static EditFunctionFragment create(@Nullable CppFunction function) { - final EditFunctionFragment fragment = new EditFunctionFragment(); - if (function != null) { - final Bundle args = new Bundle(); - args.putParcelable(ARG_FUNCTION, function); - fragment.setArguments(args); - } - return fragment; + public EditFunctionFragment() { + super(R.layout.fragment_function_edit); } public static void show(@Nonnull FragmentActivity activity) { - EditFunctionFragment.show(null, activity.getSupportFragmentManager()); + show(null, activity.getSupportFragmentManager()); } public static void show(@Nullable CppFunction function, @Nonnull Context context) { @@ -135,8 +37,7 @@ public class EditFunctionFragment extends BaseDialogFragment implements View.OnC intent.putExtra(FunctionsActivity.EXTRA_FUNCTION, function); context.startActivity(intent); } else { - EditFunctionFragment.show(function, - ((FunctionsActivity) context).getSupportFragmentManager()); + show(function, ((FunctionsActivity) context).getSupportFragmentManager()); } } @@ -144,133 +45,40 @@ public class EditFunctionFragment extends BaseDialogFragment implements View.OnC App.showDialog(create(function), "function-editor", fm); } - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - final Bundle arguments = getArguments(); - if (arguments != null) { - function = arguments.getParcelable(ARG_FUNCTION); + @Nonnull + private static BaseFunctionFragment create(@Nullable CppFunction function) { + final BaseFunctionFragment fragment = new EditFunctionFragment(); + if (function != null) { + final Bundle args = new Bundle(); + args.putParcelable(ARG_FUNCTION, function); + fragment.setArguments(args); } - } - - @Override - protected void inject(@NonNull AppComponent component) { - super.inject(component); - component.inject(this); + return fragment; } @Override protected void onPrepareDialog(@NonNull AlertDialog.Builder builder) { - builder.setNegativeButton(R.string.c_cancel, null); - builder.setPositiveButton(R.string.ok, null); - builder.setTitle(isNewFunction() ? R.string.function_create_function : - R.string.function_edit_function); + super.onPrepareDialog(builder); if (!isNewFunction()) { builder.setNeutralButton(R.string.c_remove, null); } } - private boolean isNewFunction() { - return function == null || function.id == NO_ID; - } - - @NonNull - @Override - public AlertDialog onCreateDialog(Bundle savedInstanceState) { - final AlertDialog dialog = super.onCreateDialog(savedInstanceState); - dialog.setCanceledOnTouchOutside(false); - return dialog; - } - - @Override - protected void onShowDialog(@NonNull AlertDialog dialog, boolean firstTime) { - if (firstTime) { - nameView.selectAll(); - showIme(nameView); - } - } - private void showRemovalDialog(@NonNull final CppFunction function) { EntityRemovalDialog.showForFunction(getActivity(), function.name, - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - Check.isTrue(which == DialogInterface.BUTTON_POSITIVE); - functionsRegistry.remove(function.toJsclBuilder().create()); - dismiss(); - } - }); - } - - @Override - public void onFocusChange(View v, boolean hasFocus) { - if (v instanceof EditText && FunctionParamsView.PARAM_VIEW_TAG.equals(v.getTag())) { - final ViewParent parentView = v.getParent(); - if (parentView instanceof TextInputLayout) { - if (hasFocus) { - clearError((TextInputLayout) parentView); - } else { - validateParameters(); + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + Check.isTrue(which == DialogInterface.BUTTON_POSITIVE); + functionsRegistry.remove(function.toJsclBuilder().create()); + dismiss(); } - } - return; - } - - final int id = v.getId(); - switch (id) { - case R.id.function_name: - if (hasFocus) { - clearError(nameLabel); - } else { - validateName(); - } - break; - case R.id.function_body: - if (hasFocus) { - clearError(bodyLabel); - showKeyboard(); - } else { - keyboardWindow.hide(); - validateBody(); - } - break; - } - } - - private void showKeyboard() { - keyboardWindow.show(new FloatingCalculatorKeyboard(keyboardUser, collectParameters()), - getDialog()); - } - - @Nonnull - private List collectParameters() { - final List parameters = new ArrayList<>(); - for (String parameter : paramsView.getParams()) { - if (!TextUtils.isEmpty(parameter)) { - parameters.add(parameter); - } - } - return parameters; - } - - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.function_body: - showKeyboard(); - break; - default: - super.onClick(v); - break; - } + }); } @Override public void onClick(DialogInterface dialog, int which) { switch (which) { - case DialogInterface.BUTTON_POSITIVE: - tryClose(); - break; case DialogInterface.BUTTON_NEUTRAL: Check.isNotNull(function); showRemovalDialog(function); @@ -282,32 +90,10 @@ public class EditFunctionFragment extends BaseDialogFragment implements View.OnC } @Override - public boolean onKey(View v, int keyCode, KeyEvent event) { - if (v.getId() == R.id.function_body) { - if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK && keyboardWindow.isShown()) { - keyboardWindow.hide(); - return true; - } - } - return false; - } - - private void tryClose() { - if (validate() && applyData()) { - dismiss(); - } - } - - private boolean applyData() { + protected boolean applyData(@Nonnull @NonNull CppFunction function) { try { - final String body = calculator.prepare(bodyView.getText().toString()).getValue(); - - final CppFunction newFunction = CppFunction.builder(nameView.getText().toString(), body) - .withId(isNewFunction() ? NO_ID : function.id) - .withParameters(collectParameters()) - .withDescription(descriptionView.getText().toString()).build(); final Function oldFunction = isNewFunction() ? null : functionsRegistry.getById(function.id); - functionsRegistry.add(newFunction.toJsclBuilder(), oldFunction); + functionsRegistry.add(function.toJsclBuilder(), oldFunction); return true; } catch (RuntimeException e) { setError(bodyLabel, e.getLocalizedMessage()); @@ -315,16 +101,12 @@ public class EditFunctionFragment extends BaseDialogFragment implements View.OnC return false; } - private boolean validate() { - return validateName() & validateParameters() & validateBody(); - } - - private boolean validateName() { - final String name = nameView.getText().toString(); - if (!Engine.isValidName(name)) { - setError(nameLabel, getString(R.string.function_name_is_not_valid)); + @Override + protected boolean validateName() { + if (!super.validateName()) { return false; } + final String name = nameView.getText().toString(); final Function existingFunction = functionsRegistry.get(name); if (existingFunction != null) { if (!existingFunction.isIdDefined()) { @@ -347,263 +129,4 @@ public class EditFunctionFragment extends BaseDialogFragment implements View.OnC clearError(nameLabel); return true; } - - private boolean validateBody() { - final String body = bodyView.getText().toString(); - if (TextUtils.isEmpty(body)) { - setError(bodyLabel, getString(R.string.function_is_empty)); - return false; - } - try { - calculator.prepare(body); - clearError(bodyLabel); - return true; - } catch (ParseException e) { - setError(bodyLabel, e.getLocalizedMessage()); - return false; - } - } - - private boolean validateParameters() { - boolean valid = true; - final List parameters = paramsView.getParams(); - final Set usedParameters = new HashSet<>(); - for (int i = 0; i < parameters.size(); i++) { - final String parameter = parameters.get(i); - final TextInputLayout paramLabel = paramsView.getParamLabel(i); - if (TextUtils.isEmpty(parameter)) { - clearError(paramLabel); - } else if (!Engine.isValidName(parameter)) { - valid = false; - setError(paramLabel, getString(R.string.invalid_name)); - } else if (usedParameters.contains(parameter)) { - valid = false; - setError(paramLabel, getString(R.string.function_duplicate_parameter)); - } else { - usedParameters.add(parameter); - clearError(paramLabel); - } - } - return valid; - } - - @SuppressLint("InflateParams") - @NonNull - @Override - protected View onCreateDialogView(@NonNull Context context, @NonNull LayoutInflater inflater, @Nullable Bundle savedInstanceState) { - final View view = inflater.inflate(R.layout.fragment_function_edit, null); - ButterKnife.bind(this, view); - - if (savedInstanceState == null && function != null) { - paramsView.addParams(function.getParameters()); - nameView.setText(function.getName()); - descriptionView.setText(function.getDescription()); - bodyView.setText(function.getBody()); - } - nameView.setOnFocusChangeListener(this); - paramsView.setOnFocusChangeListener(this); - bodyView.setOnClickListener(this); - bodyView.setOnFocusChangeListener(this); - bodyView.setOnKeyListener(this); - bodyView.dontShowSoftInputOnFocusCompat(); - descriptionView.setOnFocusChangeListener(this); - - return view; - } - - private class KeyboardUser implements FloatingCalculatorKeyboard.User, MenuItem.OnMenuItemClickListener { - @NonNull - @Override - public Context getContext() { - return getActivity(); - } - - @NonNull - @Override - public Resources getResources() { - return EditFunctionFragment.this.getResources(); - } - - @NonNull - @Override - public EditText getEditor() { - return bodyView; - } - - @NonNull - @Override - public ViewGroup getKeyboard() { - return keyboardWindow.getContentView(); - } - - @Override - public void insertOperator(char operator) { - insertOperator(String.valueOf(operator)); - } - - public int clampSelection(int selection) { - return selection < 0 ? 0 : selection; - } - - @Override - public void insertOperator(@NonNull String operator) { - final int start = clampSelection(bodyView.getSelectionStart()); - final int end = clampSelection(bodyView.getSelectionEnd()); - final Editable e = bodyView.getText(); - e.replace(start, end, getOperator(start, end, e, operator)); - } - - @NonNull - private String getOperator(int start, int end, @NonNull Editable e, @NonNull CharSequence operator) { - boolean spaceBefore = true; - boolean spaceAfter = true; - if (start > 0 && Character.isSpaceChar(e.charAt(start - 1))) { - spaceBefore = false; - } - if (end < e.length() && Character.isSpaceChar(e.charAt(end))) { - spaceAfter = false; - } - - if (spaceBefore && spaceAfter) { - return " " + operator + " "; - } - if (spaceBefore) { - return " " + operator; - } - if (spaceAfter) { - return operator + " "; - } - return String.valueOf(operator); - } - - @Override - public void showConstants(@NonNull View v) { - bodyView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() { - @Override - public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { - final int id = v.getId(); - if (id == R.id.function_body) { - menu.clear(); - addEntities(menu, getNamesSorted(variablesRegistry), MENU_CONSTANT); - unregisterForContextMenu(bodyView); - } - } - }); - bodyView.showContextMenu(); - } - - @Nonnull - private List getNamesSorted(@NonNull MathRegistry registry) { - final List names = new ArrayList<>(registry.getNames()); - Collections.sort(names); - return names; - } - - @Override - public void showFunctions(@NonNull View v) { - bodyView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() { - @Override - public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { - final int id = v.getId(); - if (id == R.id.function_body) { - menu.clear(); - addEntities(menu, getNamesSorted(functionsRegistry), MENU_FUNCTION); - unregisterForContextMenu(bodyView); - } - } - }); - bodyView.showContextMenu(); - } - - private void addEntities(@NonNull Menu menu, @NonNull List entities, int groupId) { - for (String entity : entities) { - menu.add(groupId, Menu.NONE, Menu.NONE, entity).setOnMenuItemClickListener(KeyboardUser.this); - } - } - - @Override - public void showFunctionsConstants(@NonNull View v) { - bodyView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() { - @Override - public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { - final int id = v.getId(); - if (id == R.id.function_body) { - menu.clear(); - // can't use sub-menus as AlertDialog doesn't support them - menu.add(MENU_CATEGORY, MENU_CONSTANT, Menu.NONE, R.string.c_vars_and_constants).setOnMenuItemClickListener(KeyboardUser.this); - menu.add(MENU_CATEGORY, MENU_FUNCTION, Menu.NONE, R.string.c_functions).setOnMenuItemClickListener(KeyboardUser.this); - unregisterForContextMenu(bodyView); - } - } - }); - bodyView.showContextMenu(); - } - - @Override - public void insertText(@NonNull CharSequence text, int selectionOffset) { - final int start = clampSelection(bodyView.getSelectionStart()); - final int end = clampSelection(bodyView.getSelectionEnd()); - final Editable e = bodyView.getText(); - e.replace(start, end, text); - if (selectionOffset != 0) { - final int selection = clampSelection(bodyView.getSelectionEnd()); - final int newSelection = selection + selectionOffset; - if (newSelection >= 0 && newSelection < e.length()) { - bodyView.setSelection(newSelection); - } - } - } - - @Override - public boolean isVibrateOnKeypress() { - return keyboard.isVibrateOnKeypress(); - } - - @Override - public void done() { - keyboardWindow.hide(); - validateBody(); - } - - @Override - public void showIme() { - final InputMethodManager keyboard = (InputMethodManager) - getContext().getSystemService(Context.INPUT_METHOD_SERVICE); - keyboard.showSoftInput(getEditor(), InputMethodManager.SHOW_FORCED); - keyboardWindow.hide(); - } - - @Override - public boolean onMenuItemClick(final MenuItem item) { - final int groupId = item.getGroupId(); - final CharSequence title = item.getTitle(); - switch (groupId) { - case MENU_FUNCTION: - final int argsListIndex = title.toString().indexOf("("); - if (argsListIndex < 0) { - keyboardUser.insertText(title + "()", -1); - } else { - keyboardUser.insertText(title.subSequence(0, argsListIndex) + "()", -1); - } - return true; - case MENU_CONSTANT: - keyboardUser.insertText(title.toString(), 0); - return true; - case MENU_CATEGORY: - bodyView.post(new Runnable() { - @Override - public void run() { - final int itemId = item.getItemId(); - if (itemId == MENU_FUNCTION) { - showFunctions(bodyView); - } else if (itemId == MENU_CONSTANT) { - showConstants(bodyView); - } - } - }); - return true; - } - return false; - } - } } diff --git a/app/src/main/java/org/solovyev/android/calculator/functions/FunctionsFragment.java b/app/src/main/java/org/solovyev/android/calculator/functions/FunctionsFragment.java index d84355ff..651e5e23 100644 --- a/app/src/main/java/org/solovyev/android/calculator/functions/FunctionsFragment.java +++ b/app/src/main/java/org/solovyev/android/calculator/functions/FunctionsFragment.java @@ -26,11 +26,15 @@ import android.content.DialogInterface; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.FragmentActivity; -import android.view.*; +import android.view.ContextMenu; +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.Subscribe; -import jscl.math.function.Function; -import jscl.math.function.IFunction; + import org.solovyev.android.Check; import org.solovyev.android.calculator.AppComponent; import org.solovyev.android.calculator.Calculator; @@ -39,11 +43,15 @@ import org.solovyev.android.calculator.entities.BaseEntitiesFragment; import org.solovyev.android.calculator.entities.Category; import org.solovyev.android.calculator.entities.EntityRemovalDialog; +import jscl.math.function.Function; +import jscl.math.function.IFunction; + +import java.util.ArrayList; +import java.util.List; + import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.inject.Inject; -import java.util.ArrayList; -import java.util.List; public class FunctionsFragment extends BaseEntitiesFragment { @@ -85,7 +93,8 @@ public class FunctionsFragment extends BaseEntitiesFragment { return true; case R.string.c_edit: if (function instanceof IFunction) { - EditFunctionFragment.show(CppFunction.builder((IFunction) function).build(), activity.getSupportFragmentManager()); + EditFunctionFragment.show(CppFunction.builder((IFunction) function).build(), + activity.getSupportFragmentManager()); } return true; case R.string.c_remove: diff --git a/app/src/main/java/org/solovyev/android/calculator/plot/ExpressionFunction.java b/app/src/main/java/org/solovyev/android/calculator/plot/ExpressionFunction.java new file mode 100644 index 00000000..c1f6ca0c --- /dev/null +++ b/app/src/main/java/org/solovyev/android/calculator/plot/ExpressionFunction.java @@ -0,0 +1,130 @@ +package org.solovyev.android.calculator.plot; + +import org.solovyev.android.plotter.Function; + +import jscl.math.Expression; +import jscl.math.Generic; +import jscl.math.JsclInteger; +import jscl.math.NumericWrapper; +import jscl.math.function.Constant; +import jscl.math.numeric.Complex; +import jscl.math.numeric.Numeric; +import jscl.math.numeric.Real; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + +public class ExpressionFunction extends Function { + private static final Complex NaN = Complex.valueOf(Double.NaN, 0d); + + @Nonnull + public final jscl.math.function.Function function; + public final Constant xVariable; + public final Constant yVariable; + public final boolean imaginary; + public final int arity; + + public ExpressionFunction(@Nonnull jscl.math.function.Function function, @Nullable Constant x, + @Nullable Constant y, boolean imaginary) { + super(imaginary ? "Im(" + function.toString() + ")" : function.toString()); + this.function = function; + this.xVariable = x; + this.yVariable = y; + this.imaginary = imaginary; + this.arity = countArity(x, y); + } + + private static int countArity(@Nullable Constant x, @Nullable Constant y) { + if (x != null && y != null) { + return 2; + } else if (x == null && y == null) { + return 0; + } + return 1; + } + + @Override + public int getArity() { + return arity; + } + + @Override + public float evaluate() { + final Complex value = calculate(function); + if (imaginary) { + return (float) value.imaginaryPart(); + } + return (float) value.realPart(); + } + + @Override + public float evaluate(float x) { + final Complex value = calculate(function, xVariable, x); + if (imaginary) { + return (float) value.imaginaryPart(); + } + return (float) value.realPart(); + } + + @Override + public float evaluate(float x, float y) { + final Complex value = calculate(function, xVariable, x, yVariable, y); + if (imaginary) { + return (float) value.imaginaryPart(); + } + return (float) value.realPart(); + } + + @Nonnull + public static Complex calculate(jscl.math.function.Function function, Constant xVar, + float x, Constant yVar, float y) { + try { + Generic tmp = function.substitute(xVar, Expression.valueOf((double) x)); + tmp = tmp.substitute(yVar, Expression.valueOf((double) y)); + return unwrap(tmp.numeric()); + } catch (RuntimeException e) { + return NaN; + } + } + + @Nonnull + public static Complex calculate(jscl.math.function.Function function, Constant xVar, + float x) { + try { + return unwrap(function.substitute(xVar, Expression.valueOf((double) x)).numeric()); + } catch (RuntimeException e) { + return NaN; + } + } + + @Nonnull + public static Complex calculate(jscl.math.function.Function function) { + try { + return unwrap(function.numeric()); + } catch (RuntimeException e) { + return NaN; + } + } + + @Nonnull + public static Complex unwrap(Generic numeric) { + if (numeric instanceof JsclInteger) { + return Complex.valueOf(((JsclInteger) numeric).intValue(), 0d); + } else if (numeric instanceof NumericWrapper) { + return unwrap(((NumericWrapper) numeric).content()); + } else { + return NaN; + } + } + + @Nonnull + public static Complex unwrap(Numeric content) { + if (content instanceof Real) { + return Complex.valueOf(((Real) content).doubleValue(), 0d); + } else if (content instanceof Complex) { + return ((Complex) content); + } else { + throw new ArithmeticException(); + } + } +} diff --git a/app/src/main/java/org/solovyev/android/calculator/plot/PlotActivity.java b/app/src/main/java/org/solovyev/android/calculator/plot/PlotActivity.java new file mode 100644 index 00000000..8a226369 --- /dev/null +++ b/app/src/main/java/org/solovyev/android/calculator/plot/PlotActivity.java @@ -0,0 +1,109 @@ +package org.solovyev.android.calculator.plot; + +import android.os.Bundle; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentTransaction; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Toast; + +import org.solovyev.android.calculator.AppComponent; +import org.solovyev.android.calculator.BaseActivity; +import org.solovyev.android.calculator.BaseFragment; +import org.solovyev.android.calculator.R; +import org.solovyev.android.plotter.Dimensions; +import org.solovyev.android.plotter.PlotViewFrame; +import org.solovyev.android.plotter.Plotter; + +import butterknife.Bind; +import butterknife.ButterKnife; + +import javax.annotation.Nonnull; +import javax.inject.Inject; + +public class PlotActivity extends BaseActivity { + + public static class MyFragment extends BaseFragment implements PlotViewFrame.Listener { + + @Inject + Plotter plotter; + @Bind(R.id.plot_view_frame) + PlotViewFrame plotView; + + public MyFragment() { + super(R.layout.fragment_plot); + } + + @Override + protected void inject(@Nonnull AppComponent component) { + super.inject(component); + component.inject(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + final View view = super.onCreateView(inflater, container, savedInstanceState); + ButterKnife.bind(this, view); + + plotView.addControlView(R.id.plot_add_function); + plotView.addControlView(R.id.plot_functions); + plotView.addControlView(R.id.plot_dimensions); + plotView.setPlotter(plotter); + plotView.setListener(this); + + return view; + } + + @Override + public void onPause() { + plotView.onPause(); + super.onPause(); + } + + @Override + public void onResume() { + super.onResume(); + plotView.onResume(); + } + + @Override + public boolean onButtonPressed(int id) { + if (id == R.id.plot_dimensions) { + final Dimensions dimensions = plotter.getDimensions(); + PlotDimensionsFragment.show(dimensions.graph.makeBounds(), plotter.is3d(), + getActivity().getSupportFragmentManager()); + return true; + } else if (id == R.id.plot_functions) { + PlotFunctionsFragment.show(getActivity().getSupportFragmentManager()); + return true; + } else if (id == R.id.plot_add_function) { + //App.getBus().post(new AddFunctionDialog.ShowEvent()); + return true; + } + return false; + } + + @Override + public void unableToZoom(boolean in) { + Toast.makeText(getActivity(), "Can't zoom anymore", Toast.LENGTH_SHORT).show(); + } + } + + public PlotActivity() { + super(R.layout.activity_empty); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + if (savedInstanceState == null) { + final FragmentManager fm = getSupportFragmentManager(); + final FragmentTransaction t = fm.beginTransaction(); + t.add(R.id.main, new MyFragment(), "plotter"); + t.commit(); + } + } +} diff --git a/app/src/main/java/org/solovyev/android/calculator/plot/PlotDimensionsFragment.java b/app/src/main/java/org/solovyev/android/calculator/plot/PlotDimensionsFragment.java new file mode 100644 index 00000000..6cff7f49 --- /dev/null +++ b/app/src/main/java/org/solovyev/android/calculator/plot/PlotDimensionsFragment.java @@ -0,0 +1,288 @@ +package org.solovyev.android.calculator.plot; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.DialogInterface; +import android.graphics.RectF; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.design.widget.TextInputLayout; +import android.support.v4.app.FragmentManager; +import android.support.v7.app.AlertDialog; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.util.Log; +import android.view.KeyEvent; +import android.view.LayoutInflater; +import android.view.View; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputMethodManager; +import android.widget.EditText; +import android.widget.TextView; + +import org.solovyev.android.calculator.App; +import org.solovyev.android.calculator.AppComponent; +import org.solovyev.android.calculator.BaseDialogFragment; +import org.solovyev.android.calculator.BaseFragment; +import org.solovyev.android.calculator.R; +import org.solovyev.android.plotter.Check; +import org.solovyev.android.plotter.Plot; +import org.solovyev.android.plotter.Plotter; + +import butterknife.Bind; +import butterknife.ButterKnife; + +import javax.annotation.Nonnull; +import javax.inject.Inject; + +public class PlotDimensionsFragment extends BaseDialogFragment + implements TextView.OnEditorActionListener { + private static final String ARG_BOUNDS = "arg-bounds"; + private static final String ARG_3D = "arg-3d"; + + private class MyTextWatcher implements TextWatcher { + @NonNull + private final TextInputLayout input; + private final boolean x; + + private MyTextWatcher(@NonNull TextInputLayout input, boolean x) { + this.input = input; + this.x = x; + } + + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + } + + @Override + public void afterTextChanged(Editable s) { + if (TextUtils.isEmpty(input.getError())) { + return; + } + + final RectF bounds = collectData(); + if (x) { + validXBounds(bounds); + } else { + validYBounds(bounds); + } + } + } + + @Inject + Plotter plotter; + @Bind(R.id.plot_x_min) + EditText xMin; + @Bind(R.id.plot_x_min_label) + TextInputLayout xMinLabel; + @Bind(R.id.plot_x_max) + EditText xMax; + @Bind(R.id.plot_x_max_label) + TextInputLayout xMaxLabel; + @Bind(R.id.plot_y_min) + EditText yMin; + @Bind(R.id.plot_y_min_label) + TextInputLayout yMinLabel; + @Bind(R.id.plot_y_max) + EditText yMax; + @Bind(R.id.plot_y_max_label) + TextInputLayout yMaxLabel; + @Bind(R.id.y_bounds) + View yBounds; + @NonNull + private RectF bounds = new RectF(); + private boolean d3; + + public PlotDimensionsFragment() { + } + + public static void show(@NonNull RectF bounds, boolean d3, @Nonnull FragmentManager fm) { + App.showDialog(create(bounds, d3), "plot-dimensions", fm); + } + + @NonNull + private static PlotDimensionsFragment create(@NonNull RectF bounds, boolean d3) { + final PlotDimensionsFragment dialog = new PlotDimensionsFragment(); + final Bundle args = new Bundle(); + args.putParcelable(ARG_BOUNDS, bounds); + args.putBoolean(ARG_3D, d3); + dialog.setArguments(args); + return dialog; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + final Bundle arguments = getArguments(); + Check.isNotNull(arguments); + bounds = BaseFragment.getParcelable(arguments, ARG_BOUNDS); + d3 = arguments.getBoolean(ARG_3D); + } + + @Override + protected void inject(@NonNull AppComponent component) { + super.inject(component); + component.inject(this); + } + + @NonNull + @Override + public AlertDialog onCreateDialog(Bundle savedInstanceState) { + final AlertDialog dialog = super.onCreateDialog(savedInstanceState); + dialog.setCanceledOnTouchOutside(false); + return dialog; + } + + @Override + protected void onShowDialog(@NonNull AlertDialog dialog, boolean firstTime) { + super.onShowDialog(dialog, firstTime); + if (firstTime) { + final InputMethodManager imm = (InputMethodManager) getActivity() + .getSystemService(Context.INPUT_METHOD_SERVICE); + imm.showSoftInput(xMin, InputMethodManager.SHOW_IMPLICIT); + } + } + + @Override + protected void onPrepareDialog(@NonNull AlertDialog.Builder builder) { + builder.setTitle("Dimensions"); + builder.setPositiveButton(android.R.string.ok, null); + } + + @NonNull + @Override + protected View onCreateDialogView(@NonNull Context context, @NonNull LayoutInflater inflater, + Bundle savedInstanceState) { + @SuppressLint("InflateParams") final View view = + LayoutInflater.from(context).inflate(R.layout.fragment_plot_dimensions, null); + ButterKnife.bind(this, view); + + setDimension(xMin, bounds.left); + setDimension(xMax, bounds.right); + setDimension(yMin, bounds.top); + setDimension(yMax, bounds.bottom); + xMin.addTextChangedListener(new MyTextWatcher(xMinLabel, true)); + xMax.addTextChangedListener(new MyTextWatcher(xMaxLabel, true)); + yMin.addTextChangedListener(new MyTextWatcher(yMinLabel, false)); + yMax.addTextChangedListener(new MyTextWatcher(yMaxLabel, false)); + if (d3) { + yBounds.setVisibility(View.GONE); + } + return view; + } + + @Override + public void onClick(DialogInterface dialog, int which) { + switch (which) { + case DialogInterface.BUTTON_POSITIVE: + tryClose(); + return; + default: + super.onClick(dialog, which); + return; + } + } + + private void setDimension(@NonNull EditText view, float value) { + view.setOnEditorActionListener(this); + view.setText(String.format("%.2f", value)); + } + + private void tryClose() { + if (validate()) { + applyData(); + dismiss(); + } + } + + private boolean validate() { + final RectF bounds = collectData(); + if (!validXBounds(bounds) | !validYBounds(bounds)) { + return false; + } + return true; + } + + private boolean validYBounds(@NonNull RectF bounds) { + if (validNumbers(this.bounds.top, this.bounds.bottom, yMinLabel, yMaxLabel)) { + return false; + } + if (bounds.top >= bounds.bottom) { + setError(yMinLabel, " "); + setError(yMaxLabel, "max ≯ min"); + return false; + } + clearError(yMinLabel); + clearError(yMaxLabel); + return true; + } + + private boolean validXBounds(@NonNull RectF bounds) { + if (validNumbers(bounds.left, bounds.right, xMinLabel, xMaxLabel)) { + return false; + } + if (bounds.left >= bounds.right) { + setError(xMinLabel, " "); + setError(xMaxLabel, "max ≯ min"); + return false; + } + clearError(xMinLabel); + clearError(xMaxLabel); + return true; + } + + private boolean validNumbers(float l, float r, @NonNull TextInputLayout lInput, @NonNull + TextInputLayout rInput) { + final boolean nanLeft = Float.isNaN(l); + final boolean nanRight = Float.isNaN(r); + if (nanLeft || nanRight) { + if (nanLeft) { + setError(lInput, " "); + } else { + clearError(lInput); + } + if (nanRight) { + setError(rInput, " "); + } else { + clearError(rInput); + } + return true; + } + return false; + } + + @NonNull + private RectF collectData() { + return new RectF(getDimension(xMin), getDimension(yMin), getDimension(xMax), + getDimension(yMax)); + } + + private void applyData() { + final RectF bounds = collectData(); + Plot.setGraphBounds(null, plotter, bounds, d3); + } + + private float getDimension(@NonNull EditText view) { + try { + return Float.parseFloat(view.getText().toString().replace(",", ".").replace("−", "-")); + } catch (NumberFormatException e) { + Log.w(Plot.getTag("MainActivity"), e.getMessage(), e); + return Float.NaN; + } + } + + @Override + public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { + if (actionId == EditorInfo.IME_ACTION_DONE) { + tryClose(); + return true; + } + return false; + } +} \ No newline at end of file diff --git a/app/src/main/java/org/solovyev/android/calculator/plot/PlotEditFunctionFragment.java b/app/src/main/java/org/solovyev/android/calculator/plot/PlotEditFunctionFragment.java new file mode 100644 index 00000000..964deaf1 --- /dev/null +++ b/app/src/main/java/org/solovyev/android/calculator/plot/PlotEditFunctionFragment.java @@ -0,0 +1,201 @@ +package org.solovyev.android.calculator.plot; + +import android.content.Context; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v4.app.FragmentManager; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.SeekBar; +import android.widget.TextView; + +import com.google.common.base.Strings; + +import org.solovyev.android.calculator.App; +import org.solovyev.android.calculator.AppComponent; +import org.solovyev.android.calculator.R; +import org.solovyev.android.calculator.functions.BaseFunctionFragment; +import org.solovyev.android.calculator.functions.CppFunction; +import org.solovyev.android.plotter.Color; +import org.solovyev.android.plotter.PlotFunction; +import org.solovyev.android.plotter.PlotIconView; +import org.solovyev.android.plotter.Plotter; +import org.solovyev.android.plotter.meshes.MeshSpec; + +import butterknife.Bind; +import jscl.math.function.Constant; +import jscl.math.function.CustomFunction; +import uz.shift.colorpicker.LineColorPicker; +import uz.shift.colorpicker.OnColorChangedListener; + +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.Nonnull; +import javax.inject.Inject; + +public class PlotEditFunctionFragment extends BaseFunctionFragment + implements SeekBar.OnSeekBarChangeListener { + @Inject + Plotter plotter; + @Bind(R.id.fn_meshspec_views) + View meshSpecViews; + @Bind(R.id.fn_color_label) + TextView colorLabel; + @Bind(R.id.fn_color_picker) + LineColorPicker colorPicker; + @Bind(R.id.fn_linewidth_label) + TextView lineWidthLabel; + @Bind(R.id.fn_linewidth_seekbar) + SeekBar lineWidthSeekBar; + @Bind(R.id.fn_iconview) + PlotIconView iconView; + private PlotFunction plotFunction; + + public PlotEditFunctionFragment() { + super(R.layout.fragment_plot_function_edit); + } + + public static void show(@Nullable PlotFunction function, @Nonnull + FragmentManager fm) { + App.showDialog(create(function), "plot-function-editor", fm); + } + + @NonNull + public static PlotEditFunctionFragment create(@Nullable PlotFunction pf) { + final PlotEditFunctionFragment fragment = new PlotEditFunctionFragment(); + if (pf != null && pf.function instanceof ExpressionFunction) { + final Bundle args = new Bundle(); + final String name = + pf.function.hasName() ? Strings.nullToEmpty(pf.function.getName()) : ""; + final List parameters = new ArrayList<>(); + final ExpressionFunction ef = (ExpressionFunction) pf.function; + if (ef.xVariable != null) { + parameters.add(ef.xVariable.getName()); + } + if (ef.yVariable != null) { + parameters.add(ef.yVariable.getName()); + } + args.putParcelable(ARG_FUNCTION, CppFunction + .builder(name, + ((CustomFunction) ef.function).getContent()) + .withParameters(parameters) + .withId(pf.function.getId()) + .build()); + fragment.setArguments(args); + } + return fragment; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (function != null) { + plotFunction = plotter.getPlotData().get(function.getId()); + if (plotFunction == null) { + dismiss(); + } + } + } + + @Override + protected void inject(@NonNull AppComponent component) { + super.inject(component); + component.inject(this); + } + + @NonNull + @Override + protected View onCreateDialogView(@NonNull Context context, @NonNull LayoutInflater inflater, + @Nullable Bundle savedInstanceState) { + final View view = super.onCreateDialogView(context, inflater, savedInstanceState); + colorPicker.setOnColorChangedListener(new OnColorChangedListener() { + @Override + public void onColorChanged(int c) { + iconView.setMeshSpec(applyMeshSpec()); + } + }); + lineWidthSeekBar.setMax(MeshSpec.MAX_WIDTH - MeshSpec.MIN_WIDTH); + lineWidthSeekBar.setOnSeekBarChangeListener(this); + + final int[] colors = MeshSpec.LightColors.asIntArray(); + colorPicker.setColors(colors); + if (savedInstanceState == null) { + if (plotFunction != null) { + setupViews(plotFunction.meshSpec); + } else { + setupViews(); + } + } + return view; + } + + private void setupViews(@NonNull MeshSpec meshSpec) { + final int color = meshSpec.color.toInt(); + final int[] colors = colorPicker.getColors(); + final int i = indexOf(colors, color); + colorPicker.setSelectedColorPosition(Math.max(0, i)); + lineWidthSeekBar.setProgress(meshSpec.width - MeshSpec.MIN_WIDTH); + iconView.setMeshSpec(meshSpec); + } + + private void setupViews() { + colorPicker.setSelectedColorPosition(0); + lineWidthSeekBar.setProgress(MeshSpec.defaultWidth(getActivity()) - MeshSpec.MIN_WIDTH); + iconView.setMeshSpec(applyMeshSpec()); + } + + private static int indexOf(int[] integers, int integer) { + for (int i = 0; i < integers.length; i++) { + if (integers[i] == integer) { + return i; + } + } + return -1; + } + + @NonNull + protected MeshSpec applyMeshSpec() { + final Color color = Color.create(colorPicker.getColor()); + final int width = MeshSpec.MIN_WIDTH + lineWidthSeekBar.getProgress(); + return MeshSpec.create(color, width); + } + + protected boolean applyData(@Nonnull CppFunction function) { + try { + final List parameters = function.getParameters(); + final Constant x = parameters.size() > 0 ? new Constant(parameters.get(0)) : null; + final Constant y = parameters.size() > 1 ? new Constant(parameters.get(1)) : null; + final ExpressionFunction expressionFunction = + new ExpressionFunction(function.toJsclBuilder().create(), x, y, false); + final PlotFunction plotFunction = PlotFunction.create(expressionFunction, + applyMeshSpec()); + final int id = function.getId(); + if (id != CppFunction.NO_ID) { + plotter.update(id, plotFunction); + } else { + plotter.add(plotFunction); + } + return true; + } catch (RuntimeException e) { + setError(bodyLabel, e.getLocalizedMessage()); + } + return false; + } + + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + iconView.setMeshSpec(applyMeshSpec()); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + + } +} diff --git a/app/src/main/java/org/solovyev/android/calculator/plot/PlotFunctionsFragment.java b/app/src/main/java/org/solovyev/android/calculator/plot/PlotFunctionsFragment.java new file mode 100644 index 00000000..30157d33 --- /dev/null +++ b/app/src/main/java/org/solovyev/android/calculator/plot/PlotFunctionsFragment.java @@ -0,0 +1,232 @@ +package org.solovyev.android.calculator.plot; + +import static android.support.v7.widget.LinearLayoutManager.VERTICAL; +import static android.view.Menu.NONE; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.DialogInterface; +import android.content.res.TypedArray; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v4.app.FragmentManager; +import android.support.v7.app.AlertDialog; +import android.support.v7.widget.RecyclerView; +import android.view.ContextMenu; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import org.solovyev.android.calculator.App; +import org.solovyev.android.calculator.AppComponent; +import org.solovyev.android.calculator.BaseDialogFragment; +import org.solovyev.android.calculator.R; +import org.solovyev.android.plotter.BasePlotterListener; +import org.solovyev.android.plotter.PlotFunction; +import org.solovyev.android.plotter.PlotIconView; +import org.solovyev.android.plotter.Plotter; +import org.solovyev.android.views.llm.DividerItemDecoration; +import org.solovyev.android.views.llm.LinearLayoutManager; + +import butterknife.Bind; +import butterknife.ButterKnife; + +import java.util.List; + +import javax.annotation.Nonnull; +import javax.inject.Inject; + +public class PlotFunctionsFragment extends BaseDialogFragment { + + @Inject + Plotter plotter; + @NonNull + private final PlotterListener plotterListener = new PlotterListener(); + private Adapter adapter; + + public PlotFunctionsFragment() { + } + + public static void show(@Nonnull FragmentManager fm) { + App.showDialog(new PlotFunctionsFragment(), "plot-functions", fm); + } + + @Override + protected void inject(@NonNull AppComponent component) { + super.inject(component); + component.inject(this); + } + + @Nullable + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + final View view = super.onCreateView(inflater, container, savedInstanceState); + plotter.addListener(plotterListener); + return view; + } + + @NonNull + protected RecyclerView onCreateDialogView(@NonNull Context context, @NonNull LayoutInflater inflater, Bundle savedInstanceState) { + @SuppressLint("InflateParams") final RecyclerView view = (RecyclerView) inflater.inflate(R.layout.dialog_functions, null); + + final LinearLayoutManager layoutManager = new LinearLayoutManager(context, VERTICAL, false); + final int itemHeight = context.getResources().getDimensionPixelSize(R.dimen.list_item_height); + layoutManager.setChildSize(itemHeight + getDividerHeight(context)); + view.setLayoutManager(layoutManager); + + view.addItemDecoration(new DividerItemDecoration(context, null)); + adapter = new Adapter(plotter.getPlotData().functions); + view.setAdapter(adapter); + return view; + } + + private int getDividerHeight(@NonNull Context context) { + final TypedArray a = context.obtainStyledAttributes(null, new int[]{android.R.attr.listDivider}); + final Drawable divider = a.getDrawable(0); + final int dividerHeight = divider == null ? 0 : divider.getIntrinsicHeight(); + a.recycle(); + return dividerHeight; + } + + @Override + public void onDestroyView() { + plotter.removeListener(plotterListener); + super.onDestroyView(); + } + + protected void onPrepareDialog(@NonNull AlertDialog.Builder builder) { + builder.setPositiveButton(android.R.string.ok, null); + builder.setNeutralButton("Add", null); + } + + @Override + public void onClick(DialogInterface dialog, int which) { + switch (which) { + case DialogInterface.BUTTON_NEUTRAL: + PlotEditFunctionFragment.show(null, getActivity().getSupportFragmentManager()); + return; + default: + super.onClick(dialog, which); + return; + } + } + + public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnCreateContextMenuListener, MenuItem.OnMenuItemClickListener { + + @Bind(R.id.function_icon) + PlotIconView icon; + + @Bind(R.id.fn_name_edittext) + TextView name; + private PlotFunction function; + + private ViewHolder(@NonNull View itemView) { + super(itemView); + ButterKnife.bind(this, itemView); + itemView.setOnClickListener(this); + itemView.setOnCreateContextMenuListener(this); + } + + void bind(@NonNull PlotFunction function) { + this.function = function; + name.setText(function.function.getName()); + icon.setMeshSpec(function.meshSpec); + } + + @Override + public void onClick(View v) { + PlotEditFunctionFragment.show(function, getActivity().getSupportFragmentManager()); + } + + @Override + public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { + menu.add(NONE, R.string.c_remove, NONE, R.string.c_remove).setOnMenuItemClickListener(this); + } + + @Override + public boolean onMenuItemClick(MenuItem item) { + if (function != null && item.getItemId() == R.string.c_remove) { + plotter.remove(function); + return true; + } + return false; + } + } + + private class Adapter extends RecyclerView.Adapter { + @NonNull + private final List list; + + public Adapter(@NonNull List list) { + this.list = list; + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + final LayoutInflater inflater = LayoutInflater.from(parent.getContext()); + return new ViewHolder(inflater.inflate(R.layout.dialog_functions_function, parent, false)); + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + ((ViewHolder) holder).bind(list.get(position)); + } + + @Override + public int getItemCount() { + return list.size(); + } + + public void remove(@NonNull PlotFunction function) { + final int i = list.indexOf(function); + if (i >= 0) { + list.remove(i); + notifyItemRemoved(i); + } + } + + public void update(int id, @NonNull PlotFunction function) { + final int i = find(id); + if (i >= 0) { + list.set(i, function); + notifyItemChanged(i); + } + } + + private int find(int id) { + for (int i = 0; i < list.size(); i++) { + final PlotFunction function = list.get(i); + if (function.function.getId() == id) { + return i; + } + } + return -1; + } + + public void add(@NonNull PlotFunction function) { + list.add(function); + notifyItemInserted(list.size() - 1); + } + } + + private class PlotterListener extends BasePlotterListener { + @Override + public void onFunctionAdded(@NonNull PlotFunction function) { + adapter.add(function); + } + + @Override + public void onFunctionUpdated(int id, @NonNull PlotFunction function) { + adapter.update(id, function); + } + + @Override + public void onFunctionRemoved(@NonNull PlotFunction function) { + adapter.remove(function); + } + } +} diff --git a/app/src/main/java/uz/shift/colorpicker/LineColorPicker.java b/app/src/main/java/uz/shift/colorpicker/LineColorPicker.java new file mode 100644 index 00000000..34020f83 --- /dev/null +++ b/app/src/main/java/uz/shift/colorpicker/LineColorPicker.java @@ -0,0 +1,405 @@ +package uz.shift.colorpicker; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.Paint.Style; +import android.graphics.Rect; +import android.os.Parcel; +import android.os.Parcelable; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.View; + +import org.solovyev.android.calculator.R; + + +public class LineColorPicker extends View { + + public static final int HORIZONTAL = 0; + public static final int VERTICAL = 1; + + int[] colors = isInEditMode() ? Palette.DEFAULT : new int[1]; + // indicate if nothing selected + boolean isColorSelected = false; + private Paint paint; + private Rect rect = new Rect(); + private int selectedColor = colors[0]; + private OnColorChangedListener onColorChanged; + private int cellSize; + private int mOrientation = HORIZONTAL; + private boolean isClick = false; + private int screenW; + private int screenH; + + public LineColorPicker(Context context, AttributeSet attrs) { + super(context, attrs); + + paint = new Paint(); + paint.setStyle(Style.FILL); + + final TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.LineColorPicker, 0, 0); + + try { + mOrientation = a.getInteger(R.styleable.LineColorPicker_lcp_orientation, HORIZONTAL); + + if (!isInEditMode()) { + final int colorsArrayResId = a.getResourceId(R.styleable.LineColorPicker_lcp_colors, -1); + + if (colorsArrayResId > 0) { + final int[] colors = context.getResources().getIntArray(colorsArrayResId); + setColors(colors); + } + } + + final int selected = a.getInteger(R.styleable.LineColorPicker_lcp_selectedColorIndex, -1); + + if (selected != -1) { + final int[] currentColors = getColors(); + + final int currentColorsLength = currentColors != null ? currentColors.length : 0; + + if (selected < currentColorsLength) { + setSelectedColorPosition(selected); + } + } + } finally { + a.recycle(); + } + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + + if (mOrientation == HORIZONTAL) { + drawHorizontalPicker(canvas); + } else { + drawVerticalPicker(canvas); + } + + } + + private void drawVerticalPicker(Canvas canvas) { + rect.left = 0; + rect.top = 0; + rect.right = getWidth(); + rect.bottom = 0; + + // 8% + int margin = Math.round(getWidth() * 0.08f); + + for (int i = 0; i < colors.length; i++) { + + paint.setColor(colors[i]); + + rect.top = rect.bottom; + rect.bottom += cellSize; + + if (isColorSelected && colors[i] == selectedColor) { + rect.left = 0; + rect.right = getWidth(); + } else { + rect.left = margin; + rect.right = getWidth() - margin; + } + + canvas.drawRect(rect, paint); + } + + } + + private void drawHorizontalPicker(Canvas canvas) { + rect.left = 0; + rect.top = 0; + rect.right = 0; + rect.bottom = getHeight(); + + // 8% + int margin = Math.round(getHeight() * 0.08f); + + for (int i = 0; i < colors.length; i++) { + + paint.setColor(colors[i]); + + rect.left = rect.right; + rect.right += cellSize; + + if (isColorSelected && colors[i] == selectedColor) { + rect.top = 0; + rect.bottom = getHeight(); + } else { + rect.top = margin; + rect.bottom = getHeight() - margin; + } + + canvas.drawRect(rect, paint); + } + } + + private void onColorChanged(int color) { + if (onColorChanged != null) { + onColorChanged.onColorChanged(color); + } + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + + int actionId = event.getAction(); + + int newColor; + + switch (actionId) { + case MotionEvent.ACTION_DOWN: + isClick = true; + break; + case MotionEvent.ACTION_UP: + newColor = getColorAtXY(event.getX(), event.getY()); + + setSelectedColor(newColor); + + if (isClick) { + performClick(); + } + + break; + + case MotionEvent.ACTION_MOVE: + newColor = getColorAtXY(event.getX(), event.getY()); + + setSelectedColor(newColor); + + break; + case MotionEvent.ACTION_CANCEL: + isClick = false; + break; + + case MotionEvent.ACTION_OUTSIDE: + isClick = false; + break; + + default: + break; + } + + return true; + } + + /** + * Return color at x,y coordinate of view. + */ + private int getColorAtXY(float x, float y) { + + // FIXME: colors.length == 0 -> devision by ZERO.s + + if (mOrientation == HORIZONTAL) { + int left = 0; + int right = 0; + + for (int i = 0; i < colors.length; i++) { + left = right; + right += cellSize; + + if (left <= x && right >= x) { + return colors[i]; + } + } + + } else { + int top = 0; + int bottom = 0; + + for (int i = 0; i < colors.length; i++) { + top = bottom; + bottom += cellSize; + + if (y >= top && y <= bottom) { + return colors[i]; + } + } + } + + return selectedColor; + } + + @Override + protected Parcelable onSaveInstanceState() { + // begin boilerplate code that allows parent classes to save state + Parcelable superState = super.onSaveInstanceState(); + + SavedState ss = new SavedState(superState); + // end + + ss.selectedColor = this.selectedColor; + ss.isColorSelected = this.isColorSelected; + + return ss; + } + + @Override + protected void onRestoreInstanceState(Parcelable state) { + // begin boilerplate code so parent classes can restore state + if (!(state instanceof SavedState)) { + super.onRestoreInstanceState(state); + return; + } + + SavedState ss = (SavedState) state; + super.onRestoreInstanceState(ss.getSuperState()); + // end + + this.selectedColor = ss.selectedColor; + this.isColorSelected = ss.isColorSelected; + } + + @Override + public boolean performClick() { + return super.performClick(); + } + + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + + screenW = w; + screenH = h; + + recalcCellSize(); + + super.onSizeChanged(w, h, oldw, oldh); + } + + /** + * Return currently selected color. + */ + public int getColor() { + return selectedColor; + } + + // @Override + // protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + // int parentWidth = MeasureSpec.getSize(widthMeasureSpec); + // int parentHeight = MeasureSpec.getSize(heightMeasureSpec); + // this.setMeasuredDimension(parentWidth, parentHeight); + // super.onMeasure(widthMeasureSpec, heightMeasureSpec); + // } + + /** + * Set selected color as color value from palette. + */ + public void setSelectedColor(int color) { + + // not from current palette + if (!containsColor(colors, color)) { + return; + } + + // do we need to re-draw view? + if (!isColorSelected || selectedColor != color) { + this.selectedColor = color; + + isColorSelected = true; + + invalidate(); + + onColorChanged(color); + } + } + + /** + * Set selected color as index from palete + */ + public void setSelectedColorPosition(int position) { + setSelectedColor(colors[position]); + } + + private int recalcCellSize() { + + if (mOrientation == HORIZONTAL) { + cellSize = Math.round(screenW / (colors.length * 1f)); + } else { + cellSize = Math.round(screenH / (colors.length * 1f)); + } + + return cellSize; + } + + /** + * Return current picker palete + */ + public int[] getColors() { + return colors; + } + + /** + * Set picker palette + */ + public void setColors(int[] colors) { + // TODO: selected color can be NOT in set of colors + // FIXME: colors can be null + this.colors = colors; + + if (!containsColor(colors, selectedColor)) { + selectedColor = colors[0]; + } + + recalcCellSize(); + + invalidate(); + } + + /** + * Return true if palette contains this color + */ + private boolean containsColor(int[] colors, int c) { + for (int i = 0; i < colors.length; i++) { + if (colors[i] == c) + return true; + + } + + return false; + } + + /** + * Set onColorChanged listener + * + * @param l + */ + public void setOnColorChangedListener(OnColorChangedListener l) { + this.onColorChanged = l; + } + + static class SavedState extends BaseSavedState { + // required field that makes Parcelables from a Parcel + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + public SavedState createFromParcel(Parcel in) { + return new SavedState(in); + } + + public SavedState[] newArray(int size) { + return new SavedState[size]; + } + }; + int selectedColor; + boolean isColorSelected; + + SavedState(Parcelable superState) { + super(superState); + } + + private SavedState(Parcel in) { + super(in); + this.selectedColor = in.readInt(); + this.isColorSelected = in.readInt() == 1; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + super.writeToParcel(out, flags); + out.writeInt(this.selectedColor); + out.writeInt(this.isColorSelected ? 1 : 0); + } + } +} diff --git a/app/src/main/java/uz/shift/colorpicker/OnColorChangedListener.java b/app/src/main/java/uz/shift/colorpicker/OnColorChangedListener.java new file mode 100644 index 00000000..a6207754 --- /dev/null +++ b/app/src/main/java/uz/shift/colorpicker/OnColorChangedListener.java @@ -0,0 +1,5 @@ +package uz.shift.colorpicker; + +public interface OnColorChangedListener { + void onColorChanged(int c); +} diff --git a/app/src/main/java/uz/shift/colorpicker/Palette.java b/app/src/main/java/uz/shift/colorpicker/Palette.java new file mode 100644 index 00000000..9cffad4d --- /dev/null +++ b/app/src/main/java/uz/shift/colorpicker/Palette.java @@ -0,0 +1,24 @@ +package uz.shift.colorpicker; + +import android.graphics.Color; + +public class Palette { + + public static int[] DEFAULT; + + static { + + DEFAULT = new int[]{Color.parseColor("#b8c847"), + Color.parseColor("#67bb43"), Color.parseColor("#41b691"), + Color.parseColor("#4182b6"), Color.parseColor("#4149b6"), + Color.parseColor("#7641b6"), Color.parseColor("#b741a7"), + Color.parseColor("#c54657"), Color.parseColor("#d1694a"), + Color.parseColor("#d1904a"), Color.parseColor("#d1c54a")}; + + } + + private Palette() { + + } + +} diff --git a/app/src/main/res/drawable-hdpi/ic_list_white_24dp.png b/app/src/main/res/drawable-hdpi/ic_list_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..f8f7e7dda6e4a5b45a97917c20dfaeddc3645077 GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;wWo_?h{y5d1PRu~2@%cz`Tk2c zTwv_<E5juBY?z2sqDoGA^{8xbs2ogzZvA71C3$u MboFyt=akR{08!Q;k^lez literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_mode_edit_white_18dp.png b/app/src/main/res/drawable-hdpi/ic_mode_edit_white_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..6bd7ffdbf2e5a52f3f1eb085af4d89e2bd720f99 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i0wmS%+S~(D&7LlfAr`0aUa%H&Fc4{dXc93q zS7QUm+H)H?d(Ty@_f79xBCzP>UP;$u^MB2@Gat?O$BS&C2a|2rSqK=G@dn@8 z!`jK{{mS<^Gatta`NG5J`kZ=AwwyPfxT@Tdxm-?it-i^x)@k||Qd}pQ@_B5!#<=%} mj||k0wldT1B8K8vZsqGKvZIQxHdidatl|M@@jO`}YEnjF~~o|j*q>l$$AJkUA@Pgg&ebxsLQ E0K!T-2><{9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_list_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_list_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..15d8fc2bb488d6654651ec05f3ecba1fb7163394 GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1Sx*gTe~DWM4fOr#gq literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_mode_edit_white_18dp.png b/app/src/main/res/drawable-mdpi/ic_mode_edit_white_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..4c907967841763b0e5cb7ae9b5bd472cd74451b1 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|m59}~Sr6KlBh0&7}G`s9})A6E3P+vT$U!5-f{jbBF+ zN>&JJwB35)oAAd+@9o8U&rQuL)+e~Go@|PG;=Y$*iRfl!-}C%UK+70BUHx3vIVCg! E0MpVwHvj+t literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_straighten_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_straighten_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..17bfb30f1207436eabce9d29a5b0f299bea396b6 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1drud~5R22v2@jsF|}$Ny7j z+w|k0wldT1B8LpB2O2`5Rc<;FKpyGWFX@9u)F)) z*;~Krtafv?I)%E_Y_K{}=&{m7?a*G%T~B-z4T5qy=?Zpsw#8tS1Xd&9k2*~>k}K1Ey;A{<}r&^GyiQbDLWRp zHtQZo@OLK!~9QxBGc=AX`N|Mrqd7MsSY794L@SiwUF=4J|?MqgvM-%Km Tlv}?Bx|YGy)z4*}Q$iB}qq10? literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_straighten_white_24dp.png b/app/src/main/res/drawable-xhdpi/ic_straighten_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..84aa262612196456a08ca7739689e78c237eeb59 GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0D3{Mxwkch)?uUT^)P!MQI^cUW< zx4)S+@VBS1L3Db%%Z&A#Z_4Y$I132=`m}helcE$$Ja5R4454{(mI#zbNbB_eB%VR0vM&kImOwxqXrb+i#$q44$rj JF6*2UngHDhItc&( literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_list_white_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_list_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..4d2807e4ebe3f77a5b830c06d76082532d9a91de GIT binary patch literal 94 zcmeAS@N?(olHy`uVBq!ia0vp^9w5vJBp7O^^}Pa8OeH~n!3+##lh0ZJdE%Zfjv*C{ p$r5b~`u^Gr{8653n)QAHJHzX3N$>My@67>e^mO%eS?83{1OWFN8fX9j literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_mode_edit_white_18dp.png b/app/src/main/res/drawable-xxhdpi/ic_mode_edit_white_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..261cad9b86c75c071014c18930f08db9a09e6165 GIT binary patch literal 269 zcmV+o0rLKdP)f~XFh3i%sKI$7RQVu-E=rg+-Y#6+`U{Lle=oXGV^dxMl!P~NrT)* zhB^TE0JmolcstwdCH4vP##Q&a$;JPW&OD~NNT$m`Z~Df*BafCZDwc@?O(%@xS>XdsLA^!WH|)|0G!%Hn8t^oG?pW9;DsV)z4*}Q$iB}k@*`j literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_mode_edit_white_18dp.png b/app/src/main/res/drawable-xxxhdpi/ic_mode_edit_white_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..02e19d04570c6f86c7885615cbc9a271a7a04873 GIT binary patch literal 302 zcmV+}0nz@6P)Nklp%{z$v^{5pMgUJ9P141uEYB)_=4RF_CjEcv6+Mn znIBAnGv0XNgxmvXi5r?~6rMQtq!!1P)XA|U^>VC8*ddh(X+J>9y^)Suv$GbGo?4@P z$3{eY=xvsabkJP%VN!{O?z@vFl@sq+=QG$(GU4=-%sAbo$vH)W(#MY3BegB1ZSKdK$X(b(iukxii#&) zXB+`2Dj&R^aRxxq;yb_>Cjp8^Kc>z&j4?L%KF;(Ssh;`jUH||907*qoM6N<$f)^cq A)Bpeg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_straighten_white_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_straighten_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..02785ff7aef31dd01298716096c6eb969f60c342 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcgZhN{ohE&{od()7w$v~w2W8R}g zo{wuBUOb58`6wV@!5RCj{PK})c}MpB_!~Cu`$RjoS293dK=5GB< z{@9$iDtbzIu-tz|?qyC+U-SRxo|#{3os=g2B=zJ3wwz^5(@Yd*aNW4vz<+I?umb}l zivWx`&idz1y(p3Zi$Fn4!%yzMt04#Gu=Ols+GVmJ)THEW)ycJ;bGxtE?SI~@Cj9t* zsaEYOsh_9#gF@nE{%_@O7JK`(*1~l4>3Ovf_x)L@{-A!k+Ker?GC=~Ku6{1-oD!M< D%(rV% literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/dialog_functions.xml b/app/src/main/res/layout/dialog_functions.xml new file mode 100644 index 00000000..52a242a8 --- /dev/null +++ b/app/src/main/res/layout/dialog_functions.xml @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_functions_function.xml b/app/src/main/res/layout/dialog_functions_function.xml new file mode 100644 index 00000000..5285b60c --- /dev/null +++ b/app/src/main/res/layout/dialog_functions_function.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_function_edit.xml b/app/src/main/res/layout/fragment_function_edit.xml index dc8303cf..2ecaf214 100644 --- a/app/src/main/res/layout/fragment_function_edit.xml +++ b/app/src/main/res/layout/fragment_function_edit.xml @@ -31,51 +31,8 @@ a:layout_height="wrap_content" a:orientation="vertical"> - - - - - - - - - - - - - - - + diff --git a/app/src/main/res/layout/fragment_function_edit_base_controls.xml b/app/src/main/res/layout/fragment_function_edit_base_controls.xml new file mode 100644 index 00000000..8bf8eb42 --- /dev/null +++ b/app/src/main/res/layout/fragment_function_edit_base_controls.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_plot.xml b/app/src/main/res/layout/fragment_plot.xml new file mode 100644 index 00000000..5f021cb9 --- /dev/null +++ b/app/src/main/res/layout/fragment_plot.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_plot_dimensions.xml b/app/src/main/res/layout/fragment_plot_dimensions.xml new file mode 100644 index 00000000..a874233b --- /dev/null +++ b/app/src/main/res/layout/fragment_plot_dimensions.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_plot_function_edit.xml b/app/src/main/res/layout/fragment_plot_function_edit.xml new file mode 100644 index 00000000..cec2f3c8 --- /dev/null +++ b/app/src/main/res/layout/fragment_plot_function_edit.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/menu/plot.xml b/app/src/main/res/menu/plot.xml index 228840db..c5ad9a8a 100644 --- a/app/src/main/res/menu/plot.xml +++ b/app/src/main/res/menu/plot.xml @@ -37,12 +37,6 @@ a:title="@string/cpp_plot_3d" app:showAsAction="ifRoom" /> - - + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 2fdc7706..73b3b010 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -42,4 +42,6 @@ 5dp 400dp 4dp + + 48dp \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 14cbeee7..a28a80c2 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -167,14 +167,6 @@ horizontal - - + + + + + + + + + + diff --git a/app/src/main/res/values/text_non_translatable.xml b/app/src/main/res/values/text_non_translatable.xml index 7cccfbb5..27234069 100644 --- a/app/src/main/res/values/text_non_translatable.xml +++ b/app/src/main/res/values/text_non_translatable.xml @@ -6,4 +6,12 @@ 0.3;0.3;0.3;0.25 + + + + + 0 + + X min + X max + Y min + Y max \ No newline at end of file diff --git a/app/src/main/res/values/text_strings.xml b/app/src/main/res/values/text_strings.xml index f2621e50..1e084ba3 100644 --- a/app/src/main/res/values/text_strings.xml +++ b/app/src/main/res/values/text_strings.xml @@ -239,4 +239,6 @@ System language Missing permission Please enable \"%1$s\" permission in system settings + Line width + Line color