expand button

This commit is contained in:
Sergey Solovyev
2013-06-26 12:01:26 +04:00
parent 961300c910
commit 23d5441b99
9 changed files with 77 additions and 58 deletions

View File

@@ -7,6 +7,7 @@
package org.solovyev.android.calculator.history;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
@@ -90,7 +91,7 @@ public abstract class AbstractCalculatorHistoryFragment extends SherlockListFrag
@Nonnull
private CalculatorFragmentHelper fragmentHelper;
private ActivityMenu<Menu, MenuItem> menu = ListActivityMenu.fromResource(R.menu.history_menu, HistoryMenu.class, SherlockMenuHelper.getInstance());
private final ActivityMenu<Menu, MenuItem> menu = ListActivityMenu.fromResource(R.menu.history_menu, HistoryMenu.class, SherlockMenuHelper.getInstance(), new HistoryMenuFilter());
@Nonnull
private final SharedPreferences.OnSharedPreferenceChangeListener preferencesListener = new HistoryOnPreferenceChangeListener();
@@ -346,20 +347,27 @@ public abstract class AbstractCalculatorHistoryFragment extends SherlockListFrag
private static enum HistoryMenu implements IdentifiableMenuItem<MenuItem> {
clear_history(R.id.history_menu_clear_history) {
clear_history(R.id.menu_history_clear_history) {
@Override
public void onClick(@Nonnull MenuItem data, @Nonnull Context context) {
Locator.getInstance().getCalculator().fireCalculatorEvent(clear_history_requested, null);
}
},
toggle_datetime(R.id.history_menu_toggle_datetime) {
toggle_datetime(R.id.menu_history_toggle_datetime) {
@Override
public void onClick(@Nonnull MenuItem data, @Nonnull Context context) {
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(CalculatorApplication.getInstance());
final Boolean showDatetime = CalculatorPreferences.History.showDatetime.getPreference(preferences);
CalculatorPreferences.History.showDatetime.putPreference(preferences, !showDatetime);
}
},
fullscreen(R.id.menu_history_fullscreen) {
@Override
public void onClick(@Nonnull MenuItem data, @Nonnull Context context) {
context.startActivity(new Intent(context, CalculatorHistoryActivity.class));
}
};
private final int itemId;
@@ -375,6 +383,24 @@ public abstract class AbstractCalculatorHistoryFragment extends SherlockListFrag
}
}
private class HistoryMenuFilter implements JPredicate<AMenuItem<MenuItem>> {
@Override
public boolean apply(@Nullable AMenuItem<MenuItem> menuItem) {
boolean result = false;
if (menuItem instanceof IdentifiableMenuItem<?>) {
switch (((IdentifiableMenuItem) menuItem).getItemId()) {
case R.id.menu_history_fullscreen:
result = !fragmentHelper.isPane(AbstractCalculatorHistoryFragment.this);
break;
}
}
return result;
}
}
/*
**********************************************************************
*

View File

@@ -6,17 +6,33 @@
package org.solovyev.android.calculator.math.edit;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;
import com.actionbarsherlock.app.SherlockListFragment;
import org.solovyev.android.calculator.*;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.solovyev.android.calculator.CalculatorApplication;
import org.solovyev.android.calculator.CalculatorEventData;
import org.solovyev.android.calculator.CalculatorEventListener;
import org.solovyev.android.calculator.CalculatorEventType;
import org.solovyev.android.calculator.CalculatorFragmentHelper;
import org.solovyev.android.calculator.CalculatorFragmentType;
import org.solovyev.android.calculator.CalculatorMathRegistry;
import org.solovyev.android.calculator.Locator;
import org.solovyev.android.calculator.R;
import org.solovyev.android.menu.AMenuItem;
import org.solovyev.android.menu.ContextMenuBuilder;
import org.solovyev.android.menu.LabeledMenuItem;
@@ -27,11 +43,7 @@ import org.solovyev.common.filter.Filter;
import org.solovyev.common.math.MathEntity;
import org.solovyev.common.text.Strings;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import com.actionbarsherlock.app.SherlockListFragment;
import static org.solovyev.android.calculator.CalculatorEventType.show_wiki_description;
@@ -318,31 +330,6 @@ public abstract class AbstractMathEntityListFragment<T extends MathEntity> exten
**********************************************************************
*/
static void createTab(@Nonnull Context context,
@Nonnull TabHost tabHost,
@Nonnull String tabId,
@Nonnull String categoryId,
int tabCaptionId,
@Nonnull Class<? extends Activity> activityClass,
@Nullable Intent parentIntent) {
TabHost.TabSpec spec;
final Intent intent;
if (parentIntent != null) {
intent = new Intent(parentIntent);
} else {
intent = new Intent();
}
intent.setClass(context, activityClass);
intent.putExtra(MATH_ENTITY_CATEGORY_EXTRA_STRING, categoryId);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec(tabId).setIndicator(context.getString(tabCaptionId)).setContent(intent);
tabHost.addTab(spec);
}
@Nonnull
public static Bundle createBundleFor(@Nonnull String categoryId) {
final Bundle result = new Bundle(1);

View File

@@ -200,7 +200,7 @@ public class CalculatorFunctionsFragment extends AbstractMathEntityListFragment<
boolean result;
switch (item.getItemId()) {
case R.id.functions_menu_add_function:
case R.id.menu_functions_add_function:
FunctionEditDialogFragment.showDialog(FunctionEditDialogFragment.Input.newInstance(), this.getActivity().getSupportFragmentManager());
result = true;
break;

View File

@@ -146,7 +146,7 @@ public class CalculatorVarsFragment extends AbstractMathEntityListFragment<ICons
boolean result;
switch (item.getItemId()) {
case R.id.var_menu_add_var:
case R.id.menu_vars_add_var:
VarEditDialogFragment.showDialog(VarEditDialogFragment.Input.newInstance(), this.getActivity().getSupportFragmentManager());
result = true;
break;