Release notes + fix for graph and angle units
This commit is contained in:
parent
ff3aa4970f
commit
2e5d35afa7
@ -251,4 +251,13 @@
|
|||||||
3. Исправлено дрожание окна Калькулятора++
|
3. Исправлено дрожание окна Калькулятора++
|
||||||
</string>
|
</string>
|
||||||
|
|
||||||
|
<string name="c_release_notes_for_115">
|
||||||
|
1. Полностью переработан графопостроитель\n
|
||||||
|
2. Добавлена возможность построения нескольких функций на одном графике\n
|
||||||
|
3. Добавлено построение в 3D\n
|
||||||
|
4. Добавлена возможность деать скриншоты графика\n
|
||||||
|
5. Исправлены проблемы с пользовательскими функциями\n
|
||||||
|
6. Другие исправления
|
||||||
|
</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
@ -250,5 +250,13 @@
|
|||||||
3. Fixed flicker for Calculator++ in separate window
|
3. Fixed flicker for Calculator++ in separate window
|
||||||
</string>
|
</string>
|
||||||
|
|
||||||
|
<string name="c_release_notes_for_115">
|
||||||
|
1. Graph plotter completely reworked\n
|
||||||
|
2. Added support for graphing several functions\n
|
||||||
|
3. Added 3D graphing capability\n
|
||||||
|
4. Added support for graph screenshots\n
|
||||||
|
5. Fixed issues with user defined functions\n
|
||||||
|
6. Other fixes
|
||||||
|
</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
@ -3,6 +3,7 @@ package org.solovyev.android.calculator;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.solovyev.android.AndroidUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* User: serso
|
* User: serso
|
||||||
@ -17,15 +18,19 @@ public final class Threads {
|
|||||||
|
|
||||||
public static void tryRunOnUiThread(@Nullable final Activity activity, @NotNull final Runnable runnable) {
|
public static void tryRunOnUiThread(@Nullable final Activity activity, @NotNull final Runnable runnable) {
|
||||||
if (activity != null && !activity.isFinishing()) {
|
if (activity != null && !activity.isFinishing()) {
|
||||||
activity.runOnUiThread(new Runnable() {
|
if (AndroidUtils.isUiThread()) {
|
||||||
@Override
|
runnable.run();
|
||||||
public void run() {
|
} else {
|
||||||
// some time may pass and activity might be closing
|
activity.runOnUiThread(new Runnable() {
|
||||||
if (!activity.isFinishing()) {
|
@Override
|
||||||
runnable.run();
|
public void run() {
|
||||||
|
// some time may pass and activity might be closing
|
||||||
|
if (!activity.isFinishing()) {
|
||||||
|
runnable.run();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,10 +2,12 @@ package org.solovyev.android.calculator.plot;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
import android.support.v4.app.FragmentActivity;
|
import android.support.v4.app.FragmentActivity;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import com.actionbarsherlock.app.SherlockFragmentActivity;
|
import com.actionbarsherlock.app.SherlockFragmentActivity;
|
||||||
@ -16,6 +18,7 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.solovyev.android.AndroidUtils2;
|
import org.solovyev.android.AndroidUtils2;
|
||||||
import org.solovyev.android.calculator.*;
|
import org.solovyev.android.calculator.*;
|
||||||
|
import org.solovyev.android.calculator.model.AndroidCalculatorEngine;
|
||||||
import org.solovyev.android.menu.AMenuItem;
|
import org.solovyev.android.menu.AMenuItem;
|
||||||
import org.solovyev.android.menu.ActivityMenu;
|
import org.solovyev.android.menu.ActivityMenu;
|
||||||
import org.solovyev.android.menu.IdentifiableMenuItem;
|
import org.solovyev.android.menu.IdentifiableMenuItem;
|
||||||
@ -38,7 +41,7 @@ import java.util.concurrent.Executors;
|
|||||||
* Date: 12/30/12
|
* Date: 12/30/12
|
||||||
* Time: 3:09 PM
|
* Time: 3:09 PM
|
||||||
*/
|
*/
|
||||||
public abstract class AbstractCalculatorPlotFragment extends CalculatorFragment implements CalculatorEventListener {
|
public abstract class AbstractCalculatorPlotFragment extends CalculatorFragment implements CalculatorEventListener, SharedPreferences.OnSharedPreferenceChangeListener {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
**********************************************************************
|
**********************************************************************
|
||||||
@ -101,6 +104,8 @@ public abstract class AbstractCalculatorPlotFragment extends CalculatorFragment
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
|
PreferenceManager.getDefaultSharedPreferences(this.getActivity()).unregisterOnSharedPreferenceChangeListener(this);
|
||||||
|
|
||||||
final PlotBoundaries plotBoundaries = getPlotBoundaries();
|
final PlotBoundaries plotBoundaries = getPlotBoundaries();
|
||||||
if (plotBoundaries != null) {
|
if (plotBoundaries != null) {
|
||||||
saveBoundaries(plotBoundaries);
|
saveBoundaries(plotBoundaries);
|
||||||
@ -113,26 +118,40 @@ public abstract class AbstractCalculatorPlotFragment extends CalculatorFragment
|
|||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
|
||||||
|
PreferenceManager.getDefaultSharedPreferences(this.getActivity()).registerOnSharedPreferenceChangeListener(this);
|
||||||
|
|
||||||
plotData = Locator.getInstance().getPlotter().getPlotData();
|
plotData = Locator.getInstance().getPlotter().getPlotData();
|
||||||
createChart(plotData);
|
updateChart(plotData, getSherlockActivity());
|
||||||
createGraphicalView(getView(), plotData);
|
}
|
||||||
getSherlockActivity().invalidateOptionsMenu();
|
|
||||||
|
@Override
|
||||||
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||||
|
if (AndroidCalculatorEngine.Preferences.angleUnit.getKey().equals(key)) {
|
||||||
|
updateChart(this.plotData, getSherlockActivity());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCalculatorEvent(@NotNull CalculatorEventData calculatorEventData, @NotNull CalculatorEventType calculatorEventType, @Nullable final Object data) {
|
public void onCalculatorEvent(@NotNull CalculatorEventData calculatorEventData, @NotNull CalculatorEventType calculatorEventType, @Nullable final Object data) {
|
||||||
if (calculatorEventType.isOfType(CalculatorEventType.plot_data_changed)) {
|
switch (calculatorEventType) {
|
||||||
final CalculatorEventHolder.Result result = this.lastEventHolder.apply(calculatorEventData);
|
case plot_data_changed:
|
||||||
if (result.isNewAfter()) {
|
final CalculatorEventHolder.Result result = this.lastEventHolder.apply(calculatorEventData);
|
||||||
onNewPlotData((PlotData) data);
|
if (result.isNewAfter()) {
|
||||||
}
|
onNewPlotData((PlotData) data);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onNewPlotData(@NotNull final PlotData plotData) {
|
private void onNewPlotData(@NotNull final PlotData plotData) {
|
||||||
this.plotData = plotData;
|
this.plotData = plotData;
|
||||||
|
|
||||||
final SherlockFragmentActivity activity = getSherlockActivity();
|
final SherlockFragmentActivity activity = getSherlockActivity();
|
||||||
|
updateChart(plotData, activity);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateChart(@NotNull final PlotData plotData, @Nullable final SherlockFragmentActivity activity) {
|
||||||
Threads.tryRunOnUiThread(activity, new Runnable() {
|
Threads.tryRunOnUiThread(activity, new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
Loading…
Reference in New Issue
Block a user