Updated mode selection toggles according to new icons

This commit is contained in:
Denis 2015-03-25 13:30:27 +02:00
parent 78154fc70d
commit 3ae6b0351e
2 changed files with 26 additions and 20 deletions

View file

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:layout_gravity="center_horizontal"
android:layout_gravity="center_horizontal" android:gravity="center_horizontal"
android:gravity="center_horizontal" android:orientation="horizontal"
android:paddingTop="7dp" android:paddingBottom="7dp"
android:paddingBottom="7dp"> android:paddingTop="7dp">
</LinearLayout> </LinearLayout>

View file

@ -1,20 +1,24 @@
package net.osmand.plus.activities.actions; package net.osmand.plus.activities.actions;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import net.osmand.plus.*;
import android.app.Activity; import android.app.Activity;
import android.content.Context;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.CompoundButton; import android.widget.CompoundButton;
import android.widget.HorizontalScrollView; import android.widget.HorizontalScrollView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.ToggleButton;
import android.widget.LinearLayout.LayoutParams; import android.widget.LinearLayout.LayoutParams;
import android.widget.ToggleButton;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.ContextMenuAdapter;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
public class AppModeDialog { public class AppModeDialog {
@ -93,7 +97,7 @@ public class AppModeDialog {
private static ToggleButton[] createDrawerToggles(final List<ApplicationMode> visible,final List<ApplicationMode> modes, private static ToggleButton[] createDrawerToggles(final List<ApplicationMode> visible,final List<ApplicationMode> modes,
final Set<ApplicationMode> selected, final Set<ApplicationMode> selected,
final Activity a, final LinearLayout ll, final ContextMenuAdapter.BooleanResult allModes, final View.OnClickListener onClickListener) { final Activity a, final LinearLayout ll, final ContextMenuAdapter.BooleanResult allModes, final View.OnClickListener onClickListener) {
ToggleButton[] buttons = createToggles(visible, ll, a, true); ToggleButton[] buttons = createToggles(visible, ll, (OsmandApplication)a.getApplication(), true);
ToggleButton[] newButtons = new ToggleButton[buttons.length + 1]; ToggleButton[] newButtons = new ToggleButton[buttons.length + 1];
for (int i = 0; i < buttons.length; i++) { for (int i = 0; i < buttons.length; i++) {
newButtons[i] = buttons[i]; newButtons[i] = buttons[i];
@ -141,7 +145,7 @@ public class AppModeDialog {
container.setLayoutParams(params); container.setLayoutParams(params);
ll.addView(container); ll.addView(container);
} }
buttons[i] = createToggle(a, container, allModes.get(i), true); buttons[i] = createToggle((OsmandApplication)a.getApplication(), container, allModes.get(i), true);
} }
for (int i = 0; i < buttons.length; i++) { for (int i = 0; i < buttons.length; i++) {
setButtonListener(allModes, selected, onClickListener, buttons, i, true); setButtonListener(allModes, selected, onClickListener, buttons, i, true);
@ -170,7 +174,7 @@ public class AppModeDialog {
public static View prepareAppModeView(Activity a, final List<ApplicationMode> values , final Set<ApplicationMode> selected, public static View prepareAppModeView(Activity a, final List<ApplicationMode> values , final Set<ApplicationMode> selected,
ViewGroup parent, final boolean singleSelection,boolean drawer, final View.OnClickListener onClickListener) { ViewGroup parent, final boolean singleSelection,boolean drawer, final View.OnClickListener onClickListener) {
LinearLayout ll = (LinearLayout) a.getLayoutInflater().inflate(R.layout.mode_toggles, parent); LinearLayout ll = (LinearLayout) a.getLayoutInflater().inflate(R.layout.mode_toggles, parent);
final ToggleButton[] buttons = createToggles(values, ll, a, drawer); final ToggleButton[] buttons = createToggles(values, ll, (OsmandApplication)a.getApplication(), drawer);
for (int i = 0; i < buttons.length; i++) { for (int i = 0; i < buttons.length; i++) {
setButtonListener(values, selected, onClickListener, buttons, i, singleSelection); setButtonListener(values, selected, onClickListener, buttons, i, singleSelection);
} }
@ -219,7 +223,7 @@ public class AppModeDialog {
} }
} }
static ToggleButton[] createToggles(final List<ApplicationMode> values, LinearLayout topLayout, Context ctx, boolean drawer) { static ToggleButton[] createToggles(final List<ApplicationMode> values, LinearLayout topLayout, OsmandApplication ctx, boolean drawer) {
final ToggleButton[] buttons = new ToggleButton[values.size()]; final ToggleButton[] buttons = new ToggleButton[values.size()];
HorizontalScrollView scroll = new HorizontalScrollView(ctx); HorizontalScrollView scroll = new HorizontalScrollView(ctx);
@ -235,7 +239,7 @@ public class AppModeDialog {
return buttons; return buttons;
} }
static private ToggleButton createToggle(Context ctx, LinearLayout layout, ApplicationMode mode, boolean drawer){ static private ToggleButton createToggle(OsmandApplication ctx, LinearLayout layout, ApplicationMode mode, boolean drawer){
int margin = 0; int margin = 0;
if (drawer) { if (drawer) {
margin = 2; margin = 2;
@ -244,11 +248,13 @@ public class AppModeDialog {
} }
int left = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, margin, ctx.getResources().getDisplayMetrics()); int left = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, margin, ctx.getResources().getDisplayMetrics());
int metrics = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 64, ctx.getResources().getDisplayMetrics()); int metrics = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 64, ctx.getResources().getDisplayMetrics());
int padding = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 11, ctx.getResources().getDisplayMetrics());
ToggleButton tb = new ToggleButton(ctx); ToggleButton tb = new ToggleButton(ctx);
tb.setTextOn(""); tb.setTextOn("");
tb.setTextOff(""); tb.setTextOff("");
tb.setContentDescription(mode.toHumanString(ctx)); tb.setContentDescription(mode.toHumanString(ctx));
tb.setButtonDrawable(mode.getIconId()); tb.setCompoundDrawablesWithIntrinsicBounds(null, ctx.getIconsCache().getIcon(mode.getIconId(), R.color.dashboard_blue), null, null);
tb.setPadding(0, padding, 0, 0);
LayoutParams lp = new LinearLayout.LayoutParams(metrics, metrics); LayoutParams lp = new LinearLayout.LayoutParams(metrics, metrics);
lp.setMargins(left, 0, 0, 0); lp.setMargins(left, 0, 0, 0);
layout.addView(tb, lp); layout.addView(tb, lp);