This commit is contained in:
serso 2012-10-03 16:43:24 +04:00
parent c720306891
commit 93412c7344
38 changed files with 1687 additions and 1751 deletions

View File

@ -22,27 +22,17 @@
<activity android:label="@string/c_app_settings" android:name=".CalculatorPreferencesActivity"/>
<activity android:label="@string/c_history" android:name=".history.CalculatorHistoryFragmentActivity"/>
<activity android:label="@string/c_about" android:name=".about.CalculatorAboutTabActivity"/>
<activity android:label="@string/c_history" android:name=".history.CalculatorHistoryActivity"/>
<activity android:label="@string/c_about" android:name=".about.CalculatorAboutActivity"/>
<activity android:label="@string/c_about" android:name=".about.CalculatorReleaseNotesActivity"/>
<activity android:label="@string/c_help" android:name=".help.CalculatorHelpActivity"/>
<activity android:label="@string/c_help" android:name=".help.CalculatorHelpTabActivity"/>
<activity android:label="@string/c_functions" android:name=".math.edit.CalculatorFunctionsActivity"/>
<activity android:label="@string/c_help" android:name=".help.HelpFaqActivity"/>
<activity android:label="@string/c_operators" android:name=".math.edit.CalculatorOperatorsActivity"/>
<activity android:label="@string/c_help" android:name=".help.HelpHintsActivity"/>
<activity android:label="@string/c_help" android:name=".help.HelpScreensActivity"/>
<activity android:label="@string/c_functions" android:name=".math.edit.CalculatorFunctionsFragmentActivity"/>
<activity android:label="@string/c_operators" android:name=".math.edit.CalculatorOperatorsFragmentActivity"/>
<activity android:label="@string/c_vars_and_constants" android:name=".math.edit.CalculatorVarsFragmentActivity"/>
<activity android:label="@string/c_vars_and_constants" android:name=".math.edit.CalculatorVarsActivity"/>
<activity android:label="@string/c_plot_graph" android:name=".plot.CalculatorPlotActivity"/>

View File

@ -1,6 +1,5 @@
package org.solovyev.android;
import android.content.res.Configuration;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
@ -33,11 +32,4 @@ public final class AndroidUtils2 {
dialogFragment.show(ft, fragmentTag);
}
// copied from API-15
public static boolean isLayoutSizeAtLeast(int size, @NotNull Configuration configuration) {
int cur = configuration.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK;
if (cur == Configuration.SCREENLAYOUT_SIZE_UNDEFINED) return false;
return cur >= size;
}
}

View File

@ -26,13 +26,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.solovyev.android.AndroidUtils;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
import org.solovyev.android.calculator.about.CalculatorReleaseNotesActivity;
import org.solovyev.android.calculator.history.CalculatorHistoryFragment;
import org.solovyev.android.calculator.history.CalculatorSavedHistoryFragment;
import org.solovyev.android.calculator.math.edit.CalculatorFunctionsFragment;
import org.solovyev.android.calculator.math.edit.CalculatorOperatorsFragment;
import org.solovyev.android.calculator.math.edit.CalculatorVarsFragment;
import org.solovyev.android.calculator.plot.CalculatorPlotFragment;
import org.solovyev.android.calculator.about.CalculatorReleaseNotesFragment;
import org.solovyev.android.fragments.FragmentUtils;
import org.solovyev.android.prefs.Preference;
import org.solovyev.android.view.ColorButton;
@ -78,6 +72,7 @@ public class CalculatorActivity extends SherlockFragmentActivity implements Shar
activityHelper.addTab(this, CalculatorFragmentType.functions, null, R.id.main_second_pane);
activityHelper.addTab(this, CalculatorFragmentType.operators, null, R.id.main_second_pane);
activityHelper.addTab(this, CalculatorFragmentType.plotter, null, R.id.main_second_pane);
activityHelper.addTab(this, CalculatorFragmentType.faq, null, R.id.main_second_pane);
} else {
getSupportActionBar().hide();
}
@ -141,7 +136,7 @@ public class CalculatorActivity extends SherlockFragmentActivity implements Shar
if (savedVersion < appVersion) {
final boolean showReleaseNotes = CalculatorPreferences.Gui.showReleaseNotes.getPreference(preferences);
if (showReleaseNotes) {
final String releaseNotes = CalculatorReleaseNotesActivity.getReleaseNotes(context, savedVersion + 1);
final String releaseNotes = CalculatorReleaseNotesFragment.getReleaseNotes(context, savedVersion + 1);
if (!StringUtils.isEmpty(releaseNotes)) {
final AlertDialog.Builder builder = new AlertDialog.Builder(context).setMessage(Html.fromHtml(releaseNotes));
builder.setPositiveButton(android.R.string.ok, null);

View File

@ -16,9 +16,6 @@ import org.solovyev.android.AndroidUtils;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
import org.solovyev.android.sherlock.tabs.ActionBarFragmentTabListener;
import java.util.ArrayList;
import java.util.List;
/**
* User: serso
* Date: 9/25/12
@ -46,9 +43,6 @@ public class CalculatorActivityHelperImpl extends AbstractCalculatorHelper imple
private boolean homeIcon = false;
@NotNull
private final List<String> fragmentTags = new ArrayList<String>();
@NotNull
private CalculatorPreferences.Gui.Theme theme;
@ -196,8 +190,6 @@ public class CalculatorActivityHelperImpl extends AbstractCalculatorHelper imple
final ActionBarFragmentTabListener listener = new ActionBarFragmentTabListener(activity, tag, fragmentClass, fragmentArgs, parentViewId);
tab.setTabListener(listener);
actionBar.addTab(tab);
fragmentTags.add(tag);
}
@Override

View File

@ -7,10 +7,9 @@ import jscl.math.Generic;
import jscl.math.function.Constant;
import org.achartengine.ChartFactory;
import org.jetbrains.annotations.NotNull;
import org.solovyev.android.AndroidUtils2;
import org.solovyev.android.calculator.about.CalculatorAboutTabActivity;
import org.solovyev.android.calculator.help.CalculatorHelpTabActivity;
import org.solovyev.android.calculator.history.CalculatorHistoryFragmentActivity;
import org.solovyev.android.calculator.about.CalculatorAboutActivity;
import org.solovyev.android.calculator.help.CalculatorHelpActivity;
import org.solovyev.android.calculator.history.CalculatorHistoryActivity;
import org.solovyev.android.calculator.math.edit.*;
import org.solovyev.android.calculator.plot.CalculatorPlotActivity;
import org.solovyev.android.calculator.plot.CalculatorPlotFragment;
@ -25,11 +24,11 @@ import org.solovyev.common.text.StringUtils;
public class CalculatorActivityLauncher {
public static void showHistory(@NotNull final Context context) {
context.startActivity(new Intent(context, CalculatorHistoryFragmentActivity.class));
context.startActivity(new Intent(context, CalculatorHistoryActivity.class));
}
public static void showHelp(@NotNull final Context context) {
context.startActivity(new Intent(context, CalculatorHelpTabActivity.class));
context.startActivity(new Intent(context, CalculatorHelpActivity.class));
}
public static void showSettings(@NotNull final Context context) {
@ -37,19 +36,19 @@ public class CalculatorActivityLauncher {
}
public static void showAbout(@NotNull final Context context) {
context.startActivity(new Intent(context, CalculatorAboutTabActivity.class));
context.startActivity(new Intent(context, CalculatorAboutActivity.class));
}
public static void showFunctions(@NotNull final Context context) {
context.startActivity(new Intent(context, CalculatorFunctionsFragmentActivity.class));
context.startActivity(new Intent(context, CalculatorFunctionsActivity.class));
}
public static void showOperators(@NotNull final Context context) {
context.startActivity(new Intent(context, CalculatorOperatorsFragmentActivity.class));
context.startActivity(new Intent(context, CalculatorOperatorsActivity.class));
}
public static void showVars(@NotNull final Context context) {
context.startActivity(new Intent(context, CalculatorVarsFragmentActivity.class));
context.startActivity(new Intent(context, CalculatorVarsActivity.class));
}
public static void plotGraph(@NotNull final Context context, @NotNull Generic generic, @NotNull Constant constant){
@ -69,7 +68,7 @@ public class CalculatorActivityLauncher {
if (context instanceof SherlockFragmentActivity) {
VarEditDialogFragment.showDialog(VarEditDialogFragment.Input.newFromValue(varValue), ((SherlockFragmentActivity) context).getSupportFragmentManager());
} else {
final Intent intent = new Intent(context, CalculatorVarsFragmentActivity.class);
final Intent intent = new Intent(context, CalculatorVarsActivity.class);
intent.putExtra(CalculatorVarsFragment.CREATE_VAR_EXTRA_STRING, varValue);
context.startActivity(intent);
}

View File

@ -15,7 +15,6 @@ import jscl.NumeralBase;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.solovyev.android.AndroidUtils;
import org.solovyev.android.AndroidUtils2;
import org.solovyev.android.calculator.model.AndroidCalculatorEngine;
import org.solovyev.android.calculator.view.AngleUnitsButton;
import org.solovyev.android.calculator.view.NumeralBasesButton;
@ -66,7 +65,7 @@ public final class CalculatorButtons {
@NotNull Activity activity) {
preferences = preferences == null ? PreferenceManager.getDefaultSharedPreferences(activity) : preferences;
final boolean large = AndroidUtils2.isLayoutSizeAtLeast(Configuration.SCREENLAYOUT_SIZE_LARGE, activity.getResources().getConfiguration());
final boolean large = AndroidUtils.isLayoutSizeAtLeast(Configuration.SCREENLAYOUT_SIZE_LARGE, activity.getResources().getConfiguration());
if (!large) {
if (AndroidUtils.getScreenOrientation(activity) == Configuration.ORIENTATION_PORTRAIT

View File

@ -1,14 +1,12 @@
package org.solovyev.android.calculator;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.actionbarsherlock.app.SherlockFragment;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import org.jetbrains.annotations.NotNull;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
import org.solovyev.android.menu.ActivityMenu;
import org.solovyev.android.menu.ListActivityMenu;
import org.solovyev.android.sherlock.menu.SherlockMenuHelper;
@ -18,61 +16,29 @@ import org.solovyev.android.sherlock.menu.SherlockMenuHelper;
* Date: 25.09.12
* Time: 10:49
*/
public class CalculatorEditorFragment extends SherlockFragment {
public class CalculatorEditorFragment extends CalculatorFragment {
@NotNull
private ActivityMenu<Menu, MenuItem> menu = ListActivityMenu.fromList(CalculatorMenu.class, SherlockMenuHelper.getInstance());
private CalculatorFragmentHelper fragmentHelper = CalculatorApplication.getInstance().createFragmentHelper(R.layout.calc_editor, R.string.editor);
public CalculatorEditorFragment() {
super(CalculatorFragmentType.editor);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
fragmentHelper.onCreate(this);
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return fragmentHelper.onCreateView(this, inflater, container);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
fragmentHelper.onViewCreated(this, view);
((AndroidCalculator) CalculatorLocatorImpl.getInstance().getCalculator()).setEditor(getActivity());
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
public void onDestroy() {
fragmentHelper.onDestroy(this);
super.onDestroy();
}
@Override
public void onResume() {
super.onResume();
this.fragmentHelper.onResume(this);
}
@Override
public void onPause() {
this.fragmentHelper.onPause(this);
super.onPause();
}
/*
**********************************************************************
*

View File

@ -0,0 +1,67 @@
package org.solovyev.android.calculator;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.actionbarsherlock.app.SherlockFragment;
import org.jetbrains.annotations.NotNull;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
/**
* User: Solovyev_S
* Date: 03.10.12
* Time: 14:18
*/
public abstract class CalculatorFragment extends SherlockFragment {
@NotNull
private final CalculatorFragmentHelper fragmentHelper;
protected CalculatorFragment(int layoutResId, int titleResId) {
fragmentHelper = CalculatorApplication.getInstance().createFragmentHelper(layoutResId, titleResId);
}
protected CalculatorFragment(@NotNull CalculatorFragmentType fragmentType) {
fragmentHelper = CalculatorApplication.getInstance().createFragmentHelper(fragmentType.getDefaultLayoutId(), fragmentType.getDefaultTitleResId());
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
fragmentHelper.onCreate(this);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return fragmentHelper.onCreateView(this, inflater, container);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
fragmentHelper.onViewCreated(this, view);
}
@Override
public void onDestroy() {
fragmentHelper.onDestroy(this);
super.onDestroy();
}
@Override
public void onResume() {
super.onResume();
this.fragmentHelper.onResume(this);
}
@Override
public void onPause() {
this.fragmentHelper.onPause(this);
super.onPause();
}
}

View File

@ -0,0 +1,65 @@
package org.solovyev.android.calculator;
import android.os.Bundle;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import org.jetbrains.annotations.NotNull;
/**
* User: Solovyev_S
* Date: 03.10.12
* Time: 14:07
*/
public abstract class CalculatorFragmentActivity extends SherlockFragmentActivity {
@NotNull
private final CalculatorActivityHelper activityHelper;
protected CalculatorFragmentActivity() {
this(R.layout.main_empty);
}
protected CalculatorFragmentActivity(int layoutResId) {
this.activityHelper = CalculatorApplication.getInstance().createActivityHelper(layoutResId, getClass().getSimpleName());
}
@NotNull
protected CalculatorActivityHelper getActivityHelper() {
return activityHelper;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
activityHelper.onCreate(this, savedInstanceState);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
activityHelper.onSaveInstanceState(this, outState);
}
@Override
protected void onResume() {
super.onResume();
activityHelper.onResume(this);
}
@Override
protected void onPause() {
this.activityHelper.onPause(this);
super.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
activityHelper.onDestroy(this);
}
}

View File

@ -0,0 +1,34 @@
/*
* Copyright (c) 2009-2011. Created by serso aka se.solovyev.
* For more information, please, contact se.solovyev@gmail.com
* or visit http://se.solovyev.org
*/
package org.solovyev.android.calculator.about;
import android.os.Bundle;
import android.text.method.LinkMovementMethod;
import android.view.View;
import android.widget.TextView;
import org.solovyev.android.calculator.CalculatorFragment;
import org.solovyev.android.calculator.R;
/**
* User: serso
* Date: 12/24/11
* Time: 11:55 PM
*/
public class CalculatorAboutFragment extends CalculatorFragment {
public CalculatorAboutFragment() {
super(CalculatorFragmentType.about);
}
@Override
public void onViewCreated(View root, Bundle savedInstanceState) {
super.onViewCreated(root, savedInstanceState);
final TextView about = (TextView) root.findViewById(R.id.aboutTextView);
about.setMovementMethod(LinkMovementMethod.getInstance());
}
}

View File

@ -1,50 +0,0 @@
/*
* Copyright (c) 2009-2011. Created by serso aka se.solovyev.
* For more information, please, contact se.solovyev@gmail.com
*/
package org.solovyev.android.calculator.about;
import android.app.TabActivity;
import android.os.Bundle;
import android.widget.TabHost;
import org.jetbrains.annotations.Nullable;
import org.solovyev.android.AndroidUtils;
import org.solovyev.android.LastTabSaver;
import org.solovyev.android.calculator.R;
/**
* User: serso
* Date: 9/16/11
* Time: 11:52 PM
*/
public class CalculatorAboutTabActivity extends TabActivity {
@Nullable
private LastTabSaver lastTabSaver;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tabs);
final TabHost tabHost = getTabHost();
AndroidUtils.addTab(this, tabHost, "about", R.string.c_about, CalculatorAboutActivity.class);
AndroidUtils.addTab(this, tabHost, "release_notes", R.string.c_release_notes, CalculatorReleaseNotesActivity.class);
lastTabSaver = new LastTabSaver(this, "about");
AndroidUtils.centerAndWrapTabsFor(tabHost);
}
@Override
protected void onDestroy() {
if ( this.lastTabSaver != null ) {
this.lastTabSaver.destroy();
}
super.onDestroy();
}
}

View File

@ -2,7 +2,11 @@ package org.solovyev.android.calculator.about;
import android.support.v4.app.Fragment;
import org.jetbrains.annotations.NotNull;
import org.solovyev.android.calculator.CalculatorEditorFragment;
import org.solovyev.android.calculator.R;
import org.solovyev.android.calculator.help.CalculatorHelpFaqFragment;
import org.solovyev.android.calculator.help.CalculatorHelpHintsFragment;
import org.solovyev.android.calculator.help.CalculatorHelpScreensFragment;
import org.solovyev.android.calculator.history.CalculatorHistoryFragment;
import org.solovyev.android.calculator.history.CalculatorSavedHistoryFragment;
import org.solovyev.android.calculator.math.edit.CalculatorFunctionsFragment;
@ -17,30 +21,41 @@ import org.solovyev.android.calculator.plot.CalculatorPlotFragment;
*/
public enum CalculatorFragmentType {
history(CalculatorHistoryFragment.class, "history", R.string.c_history),
saved_history(CalculatorSavedHistoryFragment.class, "saved_history", R.string.c_saved_history),
variables(CalculatorVarsFragment.class, "vars", R.string.c_vars),
functions(CalculatorFunctionsFragment.class, "functions", R.string.c_functions),
operators(CalculatorOperatorsFragment.class, "operators", R.string.c_operators),
plotter(CalculatorPlotFragment.class, "plotter", R.string.c_plot);
editor(CalculatorEditorFragment.class, R.layout.calc_editor, R.string.editor),
//display(CalculatorHistoryFragment.class, "history", R.layout.history_fragment, R.string.c_history),
//keyboard(CalculatorHistoryFragment.class, "history", R.layout.history_fragment, R.string.c_history),
history(CalculatorHistoryFragment.class, R.layout.history_fragment, R.string.c_history),
saved_history(CalculatorSavedHistoryFragment.class, R.layout.history_fragment, R.string.c_saved_history),
variables(CalculatorVarsFragment.class, R.layout.vars_fragment, R.string.c_vars),
functions(CalculatorFunctionsFragment.class, R.layout.math_entities_fragment, R.string.c_functions),
operators(CalculatorOperatorsFragment.class, R.layout.math_entities_fragment, R.string.c_operators),
plotter(CalculatorPlotFragment.class, R.layout.plot_fragment, R.string.c_plot),
about(CalculatorAboutFragment.class, R.layout.about_fragment, R.string.c_about),
// todo serso: rename and inflate ad
faq(CalculatorHelpFaqFragment.class, R.layout.help_faq, R.string.c_faq),
hints(CalculatorHelpHintsFragment.class, R.layout.help_hints, R.string.c_hints),
screens(CalculatorHelpScreensFragment.class, R.layout.help_screens, R.string.c_screens),
release_notes(CalculatorReleaseNotesFragment.class, R.layout.release_notes_fragment, R.string.c_release_notes);
@NotNull
private Class<? extends Fragment> fragmentClass;
@NotNull
private final String fragmentTag;
private final int defaultLayoutId;
private int defaultTitleResId;
private CalculatorFragmentType(@NotNull Class<? extends Fragment> fragmentClass, @NotNull String fragmentTag, int defaultTitleResId) {
private CalculatorFragmentType(@NotNull Class<? extends Fragment> fragmentClass,
int defaultLayoutId,
int defaultTitleResId) {
this.fragmentClass = fragmentClass;
this.fragmentTag = fragmentTag;
this.defaultLayoutId = defaultLayoutId;
this.defaultTitleResId = defaultTitleResId;
}
@NotNull
public String getFragmentTag() {
return fragmentTag;
return this.name();
}
public int getDefaultTitleResId() {
@ -52,8 +67,12 @@ public enum CalculatorFragmentType {
return fragmentClass;
}
public int getDefaultLayoutId() {
return defaultLayoutId;
}
@NotNull
public String createSubFragmentTag(@NotNull String subFragmentTag) {
return this.fragmentTag + "_" + subFragmentTag;
return this.getFragmentTag() + "_" + subFragmentTag;
}
}

View File

@ -6,16 +6,16 @@
package org.solovyev.android.calculator.about;
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.os.Bundle;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.view.View;
import android.widget.TextView;
import org.jetbrains.annotations.NotNull;
import org.solovyev.android.AndroidUtils;
import org.solovyev.android.calculator.CalculatorActivity;
import org.solovyev.android.calculator.CalculatorFragment;
import org.solovyev.android.calculator.R;
import org.solovyev.common.text.StringUtils;
@ -24,20 +24,20 @@ import org.solovyev.common.text.StringUtils;
* Date: 12/25/11
* Time: 12:00 AM
*/
public class CalculatorReleaseNotesActivity extends Activity {
public class CalculatorReleaseNotesFragment extends CalculatorFragment {
public CalculatorReleaseNotesFragment() {
super(CalculatorFragmentType.release_notes);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
public void onViewCreated(View root, Bundle savedInstanceState) {
super.onViewCreated(root, savedInstanceState);
setContentView(R.layout.release_notes);
final TextView releaseNotes = (TextView) findViewById(R.id.releaseNotesTextView);
final TextView releaseNotes = (TextView) root.findViewById(R.id.releaseNotesTextView);
releaseNotes.setMovementMethod(LinkMovementMethod.getInstance());
releaseNotes.setText(Html.fromHtml(getReleaseNotes(this)));
releaseNotes.setText(Html.fromHtml(getReleaseNotes(this.getActivity())));
}
@NotNull

View File

@ -1,48 +0,0 @@
/*
* Copyright (c) 2009-2012. Created by serso aka se.solovyev.
* For more information, please, contact se.solovyev@gmail.com
* or visit http://se.solovyev.org
*/
package org.solovyev.android.calculator.help;
import android.app.Activity;
import android.os.Bundle;
import com.google.ads.AdView;
import org.jetbrains.annotations.Nullable;
import org.solovyev.android.ads.AdsController;
/**
* User: serso
* Date: 1/4/12
* Time: 12:34 AM
*/
public class AbstractHelpActivity extends Activity {
private final int layoutId;
@Nullable
private AdView adView;
protected AbstractHelpActivity(int layoutId) {
this.layoutId = layoutId;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(layoutId);
// do not inflate ad in help (as some problems were encountered dut to ScrollView - no space for ad banner)
adView = AdsController.getInstance().inflateAd(this);
}
@Override
protected void onDestroy() {
if (this.adView != null) {
this.adView.destroy();
}
super.onDestroy();
}
}

View File

@ -0,0 +1,30 @@
/*
* Copyright (c) 2009-2011. Created by serso aka se.solovyev.
* For more information, please, contact se.solovyev@gmail.com
* or visit http://se.solovyev.org
*/
package org.solovyev.android.calculator.help;
import android.os.Bundle;
import org.jetbrains.annotations.Nullable;
import org.solovyev.android.calculator.CalculatorFragmentActivity;
import org.solovyev.android.calculator.R;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
/**
* User: serso
* Date: 11/19/11
* Time: 11:35 AM
*/
public class CalculatorHelpActivity extends CalculatorFragmentActivity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivityHelper().addTab(this, CalculatorFragmentType.faq, null, R.id.main_layout);
getActivityHelper().addTab(this, CalculatorFragmentType.hints, null, R.id.main_layout);
getActivityHelper().addTab(this, CalculatorFragmentType.screens, null, R.id.main_layout);
}
}

View File

@ -0,0 +1,22 @@
/*
* Copyright (c) 2009-2011. Created by serso aka se.solovyev.
* For more information, please, contact se.solovyev@gmail.com
* or visit http://se.solovyev.org
*/
package org.solovyev.android.calculator.help;
import org.solovyev.android.calculator.CalculatorFragment;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
/**
* User: serso
* Date: 11/19/11
* Time: 11:37 AM
*/
public class CalculatorHelpFaqFragment extends CalculatorFragment {
public CalculatorHelpFaqFragment() {
super(CalculatorFragmentType.faq);
}
}

View File

@ -0,0 +1,22 @@
/*
* Copyright (c) 2009-2011. Created by serso aka se.solovyev.
* For more information, please, contact se.solovyev@gmail.com
* or visit http://se.solovyev.org
*/
package org.solovyev.android.calculator.help;
import org.solovyev.android.calculator.CalculatorFragment;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
/**
* User: serso
* Date: 11/19/11
* Time: 11:37 AM
*/
public class CalculatorHelpHintsFragment extends CalculatorFragment {
public CalculatorHelpHintsFragment() {
super(CalculatorFragmentType.hints);
}
}

View File

@ -0,0 +1,23 @@
/*
* Copyright (c) 2009-2011. Created by serso aka se.solovyev.
* For more information, please, contact se.solovyev@gmail.com
* or visit http://se.solovyev.org
*/
package org.solovyev.android.calculator.help;
import org.solovyev.android.calculator.CalculatorFragment;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
/**
* User: serso
* Date: 11/19/11
* Time: 11:38 AM
*/
public class CalculatorHelpScreensFragment extends CalculatorFragment {
public CalculatorHelpScreensFragment() {
super(CalculatorFragmentType.screens);
}
}

View File

@ -1,70 +0,0 @@
/*
* Copyright (c) 2009-2011. Created by serso aka se.solovyev.
* For more information, please, contact se.solovyev@gmail.com
* or visit http://se.solovyev.org
*/
package org.solovyev.android.calculator.help;
import android.app.Activity;
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TabHost;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.solovyev.android.AndroidUtils;
import org.solovyev.android.LastTabSaver;
import org.solovyev.android.calculator.R;
/**
* User: serso
* Date: 11/19/11
* Time: 11:35 AM
*/
public class CalculatorHelpTabActivity extends TabActivity {
@Nullable
private LastTabSaver lastTabSaver;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tabs);
final TabHost tabHost = getTabHost();
createTab(tabHost, "faq", R.string.c_faq, HelpFaqActivity.class);
createTab(tabHost, "hints", R.string.c_hints, HelpHintsActivity.class);
createTab(tabHost, "screens", R.string.c_screens, HelpScreensActivity.class);
this.lastTabSaver = new LastTabSaver(this, "faq");
AndroidUtils.centerAndWrapTabsFor(tabHost);
}
private void createTab(@NotNull TabHost tabHost,
@NotNull String tabId,
int tabCaptionId,
@NotNull Class<? extends Activity> activityClass) {
TabHost.TabSpec spec;
final Intent intent = new Intent().setClass(this, activityClass);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec(tabId).setIndicator(getString(tabCaptionId)).setContent(intent);
tabHost.addTab(spec);
}
@Override
protected void onDestroy() {
if (this.lastTabSaver != null) {
this.lastTabSaver.destroy();
}
super.onDestroy();
}
}

View File

@ -1,21 +0,0 @@
/*
* Copyright (c) 2009-2011. Created by serso aka se.solovyev.
* For more information, please, contact se.solovyev@gmail.com
* or visit http://se.solovyev.org
*/
package org.solovyev.android.calculator.help;
import org.solovyev.android.calculator.R;
/**
* User: serso
* Date: 11/19/11
* Time: 11:37 AM
*/
public class HelpFaqActivity extends AbstractHelpActivity {
public HelpFaqActivity() {
super(R.layout.help_faq);
}
}

View File

@ -1,21 +0,0 @@
/*
* Copyright (c) 2009-2011. Created by serso aka se.solovyev.
* For more information, please, contact se.solovyev@gmail.com
* or visit http://se.solovyev.org
*/
package org.solovyev.android.calculator.help;
import org.solovyev.android.calculator.R;
/**
* User: serso
* Date: 11/19/11
* Time: 11:37 AM
*/
public class HelpHintsActivity extends AbstractHelpActivity {
public HelpHintsActivity() {
super(R.layout.help_hints);
}
}

View File

@ -1,22 +0,0 @@
/*
* Copyright (c) 2009-2011. Created by serso aka se.solovyev.
* For more information, please, contact se.solovyev@gmail.com
* or visit http://se.solovyev.org
*/
package org.solovyev.android.calculator.help;
import org.solovyev.android.calculator.R;
/**
* User: serso
* Date: 11/19/11
* Time: 11:38 AM
*/
public class HelpScreensActivity extends AbstractHelpActivity{
public HelpScreensActivity() {
super(R.layout.help_screens);
}
}

View File

@ -19,6 +19,7 @@ import com.actionbarsherlock.app.SherlockListFragment;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.solovyev.android.calculator.*;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
import org.solovyev.android.calculator.jscl.JsclOperation;
import org.solovyev.android.menu.AMenuBuilder;
import org.solovyev.android.menu.MenuImpl;
@ -82,11 +83,14 @@ public abstract class AbstractCalculatorHistoryFragment extends SherlockListFrag
@NotNull
private CalculatorFragmentHelper fragmentHelper;
protected AbstractCalculatorHistoryFragment(@NotNull CalculatorFragmentType fragmentType) {
fragmentHelper = CalculatorApplication.getInstance().createFragmentHelper(fragmentType.getDefaultLayoutId(), fragmentType.getDefaultTitleResId(), false);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
fragmentHelper = CalculatorApplication.getInstance().createFragmentHelper(R.layout.history_fragment, getTitleResId(), false);
fragmentHelper.onCreate(this);
logDebug("onCreate");
@ -158,9 +162,6 @@ public abstract class AbstractCalculatorHistoryFragment extends SherlockListFrag
});
}
protected abstract int getTitleResId();
@Override
public void onResume() {
super.onResume();

View File

@ -18,10 +18,10 @@ import org.solovyev.android.calculator.about.CalculatorFragmentType;
* Date: 12/18/11
* Time: 7:37 PM
*/
public class CalculatorHistoryFragmentActivity extends SherlockFragmentActivity implements CalculatorEventListener {
public class CalculatorHistoryActivity extends SherlockFragmentActivity implements CalculatorEventListener {
@NotNull
private final CalculatorActivityHelper activityHelper = CalculatorApplication.getInstance().createActivityHelper(R.layout.main_empty, CalculatorHistoryFragmentActivity.class.getSimpleName());
private final CalculatorActivityHelper activityHelper = CalculatorApplication.getInstance().createActivityHelper(R.layout.main_empty, CalculatorHistoryActivity.class.getSimpleName());
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {

View File

@ -9,6 +9,7 @@ package org.solovyev.android.calculator.history;
import org.jetbrains.annotations.NotNull;
import org.solovyev.android.calculator.CalculatorLocatorImpl;
import org.solovyev.android.calculator.R;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
import java.util.ArrayList;
import java.util.List;
@ -20,14 +21,13 @@ import java.util.List;
*/
public class CalculatorHistoryFragment extends AbstractCalculatorHistoryFragment {
@Override
protected int getTitleResId() {
return R.string.c_history;
public CalculatorHistoryFragment() {
super(CalculatorFragmentType.history);
}
@Override
protected int getItemLayoutId() {
return R.layout.history;
return R.layout.history_item;
}
@NotNull

View File

@ -9,6 +9,7 @@ package org.solovyev.android.calculator.history;
import org.jetbrains.annotations.NotNull;
import org.solovyev.android.calculator.CalculatorLocatorImpl;
import org.solovyev.android.calculator.R;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
import java.util.ArrayList;
import java.util.List;
@ -20,14 +21,13 @@ import java.util.List;
*/
public class CalculatorSavedHistoryFragment extends AbstractCalculatorHistoryFragment {
@Override
protected int getTitleResId() {
return R.string.c_saved_history;
public CalculatorSavedHistoryFragment() {
super(CalculatorFragmentType.saved_history);
}
@Override
protected int getItemLayoutId() {
return R.layout.saved_history;
return R.layout.saved_history_item;
}
@NotNull

View File

@ -19,6 +19,7 @@ import com.actionbarsherlock.app.SherlockListFragment;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.solovyev.android.calculator.*;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
import org.solovyev.android.menu.AMenuBuilder;
import org.solovyev.android.menu.AMenuItem;
import org.solovyev.android.menu.LabeledMenuItem;
@ -68,13 +69,13 @@ public abstract class AbstractMathEntityListFragment<T extends MathEntity> exten
private String category;
@NotNull
private CalculatorFragmentHelper fragmentHelper;
private final CalculatorFragmentHelper fragmentHelper;
@NotNull
private final Handler uiHandler = new Handler();
protected int getLayoutId() {
return R.layout.math_entities_fragment;
protected AbstractMathEntityListFragment(@NotNull CalculatorFragmentType fragmentType) {
fragmentHelper = CalculatorApplication.getInstance().createFragmentHelper(fragmentType.getDefaultLayoutId(),fragmentType.getDefaultTitleResId());
}
@Override
@ -86,7 +87,6 @@ public abstract class AbstractMathEntityListFragment<T extends MathEntity> exten
category = bundle.getString(MATH_ENTITY_CATEGORY_EXTRA_STRING);
}
fragmentHelper = CalculatorApplication.getInstance().createFragmentHelper(getLayoutId(), getTitleResId());
fragmentHelper.onCreate(this);
}
@ -136,8 +136,6 @@ public abstract class AbstractMathEntityListFragment<T extends MathEntity> exten
@Nullable
protected abstract AMenuItem<T> getOnClickAction();
protected abstract int getTitleResId();
@Override
public void onDestroy() {
fragmentHelper.onDestroy(this);

View File

@ -12,7 +12,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.solovyev.android.calculator.*;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
import org.solovyev.android.calculator.history.CalculatorHistoryFragmentActivity;
import org.solovyev.android.calculator.history.CalculatorHistoryActivity;
import org.solovyev.android.calculator.model.AndroidFunctionsMathRegistry;
/**
@ -20,10 +20,10 @@ import org.solovyev.android.calculator.model.AndroidFunctionsMathRegistry;
* Date: 12/21/11
* Time: 10:33 PM
*/
public class CalculatorFunctionsFragmentActivity extends SherlockFragmentActivity implements CalculatorEventListener {
public class CalculatorFunctionsActivity extends SherlockFragmentActivity implements CalculatorEventListener {
@NotNull
private final CalculatorActivityHelper activityHelper = CalculatorApplication.getInstance().createActivityHelper(R.layout.main_empty, CalculatorHistoryFragmentActivity.class.getSimpleName());
private final CalculatorActivityHelper activityHelper = CalculatorApplication.getInstance().createActivityHelper(R.layout.main_empty, CalculatorHistoryActivity.class.getSimpleName());
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {

View File

@ -15,6 +15,7 @@ import org.jetbrains.annotations.NotNull;
import org.solovyev.android.calculator.CalculatorEventType;
import org.solovyev.android.calculator.CalculatorLocatorImpl;
import org.solovyev.android.calculator.R;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
import org.solovyev.android.menu.AMenuItem;
import org.solovyev.android.menu.LabeledMenuItem;
import org.solovyev.common.text.StringUtils;
@ -32,6 +33,10 @@ public class CalculatorFunctionsFragment extends AbstractMathEntityListFragment<
public static final String CREATE_FUN_EXTRA_STRING = "org.solovyev.android.calculator.math.edit.CalculatorFunctionsTabActivity_create_fun";
public CalculatorFunctionsFragment() {
super(CalculatorFragmentType.functions);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -69,11 +74,6 @@ public class CalculatorFunctionsFragment extends AbstractMathEntityListFragment<
return LongClickMenuItem.use;
}
@Override
protected int getTitleResId() {
return R.string.c_functions;
}
@NotNull
@Override
protected List<LabeledMenuItem<Function>> getMenuItemsOnLongClick(@NotNull Function item) {

View File

@ -12,8 +12,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.solovyev.android.calculator.*;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
import org.solovyev.android.calculator.history.CalculatorHistoryFragmentActivity;
import org.solovyev.android.calculator.model.AndroidFunctionsMathRegistry;
import org.solovyev.android.calculator.history.CalculatorHistoryActivity;
import org.solovyev.android.calculator.model.AndroidOperatorsMathRegistry;
/**
@ -21,10 +20,10 @@ import org.solovyev.android.calculator.model.AndroidOperatorsMathRegistry;
* Date: 12/21/11
* Time: 10:33 PM
*/
public class CalculatorOperatorsFragmentActivity extends SherlockFragmentActivity implements CalculatorEventListener {
public class CalculatorOperatorsActivity extends SherlockFragmentActivity implements CalculatorEventListener {
@NotNull
private final CalculatorActivityHelper activityHelper = CalculatorApplication.getInstance().createActivityHelper(R.layout.main_empty, CalculatorHistoryFragmentActivity.class.getSimpleName());
private final CalculatorActivityHelper activityHelper = CalculatorApplication.getInstance().createActivityHelper(R.layout.main_empty, CalculatorHistoryActivity.class.getSimpleName());
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {

View File

@ -8,6 +8,7 @@ import org.jetbrains.annotations.NotNull;
import org.solovyev.android.calculator.CalculatorEventType;
import org.solovyev.android.calculator.CalculatorLocatorImpl;
import org.solovyev.android.calculator.R;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
import org.solovyev.android.menu.AMenuItem;
import org.solovyev.android.menu.LabeledMenuItem;
import org.solovyev.common.text.StringUtils;
@ -24,14 +25,13 @@ import java.util.List;
public class CalculatorOperatorsFragment extends AbstractMathEntityListFragment<Operator> {
@Override
protected AMenuItem<Operator> getOnClickAction() {
return LongClickMenuItem.use;
public CalculatorOperatorsFragment() {
super(CalculatorFragmentType.operators);
}
@Override
protected int getTitleResId() {
return R.string.c_operators;
protected AMenuItem<Operator> getOnClickAction() {
return LongClickMenuItem.use;
}
@NotNull

View File

@ -13,7 +13,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.solovyev.android.calculator.*;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
import org.solovyev.android.calculator.history.CalculatorHistoryFragmentActivity;
import org.solovyev.android.calculator.history.CalculatorHistoryActivity;
import org.solovyev.android.calculator.model.VarCategory;
/**
@ -21,10 +21,10 @@ import org.solovyev.android.calculator.model.VarCategory;
* Date: 12/21/11
* Time: 11:05 PM
*/
public class CalculatorVarsFragmentActivity extends SherlockFragmentActivity implements CalculatorEventListener {
public class CalculatorVarsActivity extends SherlockFragmentActivity implements CalculatorEventListener {
@NotNull
private final CalculatorActivityHelper activityHelper = CalculatorApplication.getInstance().createActivityHelper(R.layout.main_empty, CalculatorHistoryFragmentActivity.class.getSimpleName());
private final CalculatorActivityHelper activityHelper = CalculatorApplication.getInstance().createActivityHelper(R.layout.main_empty, CalculatorHistoryActivity.class.getSimpleName());
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {

View File

@ -16,8 +16,8 @@ import com.actionbarsherlock.view.MenuItem;
import jscl.math.function.IConstant;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.solovyev.android.AndroidUtils2;
import org.solovyev.android.calculator.*;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
import org.solovyev.android.calculator.math.MathType;
import org.solovyev.android.menu.AMenuItem;
import org.solovyev.android.menu.LabeledMenuItem;
@ -38,9 +38,8 @@ public class CalculatorVarsFragment extends AbstractMathEntityListFragment<ICons
public static final String CREATE_VAR_EXTRA_STRING = "create_var";
@Override
protected int getLayoutId() {
return R.layout.vars_fragment;
public CalculatorVarsFragment() {
super(CalculatorFragmentType.variables);
}
@Override
@ -61,11 +60,6 @@ public class CalculatorVarsFragment extends AbstractMathEntityListFragment<ICons
setHasOptionsMenu(true);
}
@Override
protected int getTitleResId() {
return R.string.c_vars;
}
@Override
protected AMenuItem<IConstant> getOnClickAction() {
return LongClickMenuItem.use;

View File

@ -2,11 +2,8 @@ package org.solovyev.android.calculator.plot;
import android.content.Intent;
import android.os.Bundle;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.solovyev.android.calculator.CalculatorActivityHelper;
import org.solovyev.android.calculator.CalculatorApplication;
import org.solovyev.android.calculator.CalculatorFragmentActivity;
import org.solovyev.android.calculator.R;
import org.solovyev.android.calculator.about.CalculatorFragmentType;
@ -15,17 +12,12 @@ import org.solovyev.android.calculator.about.CalculatorFragmentType;
* Date: 9/30/12
* Time: 4:56 PM
*/
public class CalculatorPlotActivity extends SherlockFragmentActivity {
@NotNull
private final CalculatorActivityHelper activityHelper = CalculatorApplication.getInstance().createActivityHelper(R.layout.main_empty, CalculatorPlotActivity.class.getSimpleName());
public class CalculatorPlotActivity extends CalculatorFragmentActivity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
activityHelper.onCreate(this, savedInstanceState);
final Intent intent = getIntent();
final Bundle arguments;
@ -35,37 +27,6 @@ public class CalculatorPlotActivity extends SherlockFragmentActivity {
arguments = null;
}
activityHelper.addTab(this, CalculatorFragmentType.plotter, arguments, R.id.main_layout);
getActivityHelper().addTab(this, CalculatorFragmentType.plotter, arguments, R.id.main_layout);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
activityHelper.onSaveInstanceState(this, outState);
}
@Override
protected void onResume() {
super.onResume();
activityHelper.onResume(this);
}
@Override
protected void onPause() {
this.activityHelper.onPause(this);
super.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
activityHelper.onDestroy(this);
}
}