RTL - Step 3 (Share button)

This commit is contained in:
Nazar-Kutz 2020-06-11 10:34:02 +03:00
parent 0ec0609b4f
commit 1f1aad2446
14 changed files with 90 additions and 23 deletions

View file

@ -3,6 +3,7 @@ package net.osmand.plus.activities;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.ContextThemeWrapper;
import android.view.Gravity;
@ -197,8 +198,12 @@ public class EditFavoriteGroupDialogFragment extends MenuBottomSheetDialogFragme
.create();
items.add(markersGroupItem);
Drawable shareIcon = getContentIcon(R.drawable.ic_action_gshare_dark);
if (shareIcon != null) {
shareIcon = AndroidUtils.getDrawableForDirection(app, shareIcon);
}
BaseBottomSheetItem shareItem = new SimpleBottomSheetItem.Builder()
.setIcon(getContentIcon(R.drawable.ic_action_gshare_dark))
.setIcon(shareIcon)
.setTitle(getString(R.string.shared_string_share))
.setLayoutId(R.layout.bottom_sheet_item_simple)
.setOnClickListener(new View.OnClickListener() {

View file

@ -454,7 +454,7 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment implemen
if (!MenuItemCompat.isActionViewExpanded(mi)) {
createMenuItem(menu, IMPORT_FAVOURITES_ID, R.string.shared_string_add_to_favorites, R.drawable.ic_action_plus, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
createMenuItem(menu, SHARE_ID, R.string.shared_string_share, R.drawable.ic_action_gshare_dark, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
createMenuItem(menu, SHARE_ID, R.string.shared_string_share, R.drawable.ic_action_gshare_dark, MenuItemCompat.SHOW_AS_ACTION_ALWAYS, true);
createMenuItem(menu, SELECT_MAP_MARKERS_ID, R.string.select_map_markers, R.drawable.ic_action_flag, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
createMenuItem(menu, DELETE_ID, R.string.shared_string_delete, R.drawable.ic_action_delete_dark, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
}

View file

@ -1,8 +1,10 @@
package net.osmand.plus.audionotes;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import net.osmand.AndroidUtils;
import net.osmand.plus.R;
import net.osmand.plus.audionotes.AudioVideoNotesPlugin.Recording;
import net.osmand.plus.base.MenuBottomSheetDialogFragment;
@ -49,8 +51,12 @@ public class ItemMenuBottomSheetDialogFragment extends MenuBottomSheetDialogFrag
.create();
items.add(playItem);
Drawable shareIcon = getContentIcon(R.drawable.ic_action_gshare_dark);
if (shareIcon != null) {
AndroidUtils.getDrawableForDirection(requireContext(), shareIcon);
}
BaseBottomSheetItem shareItem = new SimpleBottomSheetItem.Builder()
.setIcon(getContentIcon(R.drawable.ic_action_gshare_dark))
.setIcon(shareIcon)
.setTitle(getString(R.string.shared_string_share))
.setLayoutId(R.layout.bottom_sheet_item_simple)
.setOnClickListener(new View.OnClickListener() {

View file

@ -3,6 +3,7 @@ package net.osmand.plus.audionotes;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.Build;
@ -21,10 +22,12 @@ import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.view.ActionMode;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import net.osmand.AndroidUtils;
@ -33,6 +36,7 @@ import net.osmand.GPXUtilities.GPXFile;
import net.osmand.GPXUtilities.WptPt;
import net.osmand.PlatformUtil;
import net.osmand.data.PointDescription;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.settings.backend.OsmandSettings.NotesSortByMode;
import net.osmand.plus.R;
@ -163,14 +167,18 @@ public class NotesFragment extends OsmAndListFragment implements FavoritesFragme
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.clear();
if (AndroidUiHelper.isOrientationPortrait(getActivity())) {
menu = ((ActionBarProgressActivity) getActivity()).getClearToolbar(true).getMenu();
} else {
((ActionBarProgressActivity) getActivity()).getClearToolbar(false);
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
FragmentActivity activity = getActivity();
if (activity == null) {
return;
}
((ActionBarProgressActivity) getActivity()).updateListViewFooter(footerView);
menu.clear();
if (AndroidUiHelper.isOrientationPortrait(activity)) {
menu = ((ActionBarProgressActivity) activity).getClearToolbar(true).getMenu();
} else {
((ActionBarProgressActivity) activity).getClearToolbar(false);
}
((ActionBarProgressActivity) activity).updateListViewFooter(footerView);
MenuItem item = menu.add(R.string.shared_string_sort).setIcon(R.drawable.ic_action_list_sort);
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@ -182,7 +190,9 @@ public class NotesFragment extends OsmAndListFragment implements FavoritesFragme
});
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
item = menu.add(R.string.shared_string_share).setIcon(R.drawable.ic_action_gshare_dark);
Drawable shareIcon = AndroidUtils.getDrawableForDirection(activity,
getMyApplication().getUIUtilities().getIcon(R.drawable.ic_action_gshare_dark));
item = menu.add(R.string.shared_string_share).setIcon(shareIcon);
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
@ -377,13 +387,16 @@ public class NotesFragment extends OsmAndListFragment implements FavoritesFragme
@Override
public boolean onCreateActionMode(final ActionMode mode, Menu menu) {
LOG.debug("onCreateActionMode");
OsmandApplication app = getMyApplication();
if (type == MODE_SHARE) {
listAdapter.insert(SHARE_LOCATION_FILE, 0);
}
switchSelectionMode(true);
int titleRes = type == MODE_DELETE ? R.string.shared_string_delete_all : R.string.shared_string_share;
int iconRes = type == MODE_DELETE ? R.drawable.ic_action_delete_dark : R.drawable.ic_action_gshare_dark;
MenuItem item = menu.add(titleRes).setIcon(iconRes);
Drawable icon = AndroidUtils.getDrawableForDirection(app,
app.getUIUtilities().getIcon(iconRes));
MenuItem item = menu.add(titleRes).setIcon(icon);
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {

View file

@ -15,6 +15,7 @@ import android.widget.ExpandableListView.OnChildClickListener;
import androidx.annotation.NonNull;
import androidx.core.view.MenuItemCompat;
import net.osmand.AndroidUtils;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.activities.OsmandActionBarActivity;
@ -83,10 +84,20 @@ public abstract class OsmandExpandableListFragment extends BaseOsmAndFragment
}
public MenuItem createMenuItem(Menu m, int id, int titleRes, int iconId, int menuItemType) {
Drawable d = iconId == 0 ? null : requireMyApplication().getUIUtilities().getIcon(iconId,
isLightActionBar() ? R.color.active_buttons_and_links_text_light : R.color.active_buttons_and_links_text_dark);
return createMenuItem(m, id, titleRes, iconId, menuItemType, false);
}
public MenuItem createMenuItem(Menu m, int id, int titleRes, int iconId, int menuItemType,
boolean useLayoutDirectionForIcon) {
OsmandApplication app = requireMyApplication();
Drawable d = iconId == 0 ? null : app.getUIUtilities().getIcon(iconId, isLightActionBar() ?
R.color.active_buttons_and_links_text_light :
R.color.active_buttons_and_links_text_dark);
MenuItem menuItem = m.add(0, id, 0, titleRes);
if (d != null) {
if (useLayoutDirectionForIcon) {
d = AndroidUtils.getDrawableForDirection(app, d);
}
menuItem.setIcon(d);
}
menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

View file

@ -1,5 +1,6 @@
package net.osmand.plus.development;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Gravity;
@ -15,6 +16,7 @@ import androidx.appcompat.app.ActionBar;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import net.osmand.AndroidUtils;
import net.osmand.PlatformUtil;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
@ -94,8 +96,10 @@ public class LogcatActivity extends ActionBarProgressActivity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
OsmandApplication app = getMyApplication();
Drawable shareIcon = app.getUIUtilities().getIcon(R.drawable.ic_action_gshare_dark);
MenuItem share = menu.add(0, SHARE_ID, 0, R.string.shared_string_export);
share.setIcon(R.drawable.ic_action_gshare_dark);
share.setIcon(AndroidUtils.getDrawableForDirection(app, shareIcon));
share.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

View file

@ -1492,8 +1492,9 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
return true;
}
});
Drawable shareIcon = iconsCache.getThemedIcon((R.drawable.ic_action_gshare_dark));
item = optionsMenu.getMenu().add(R.string.shared_string_share)
.setIcon(iconsCache.getThemedIcon(R.drawable.ic_action_gshare_dark));
.setIcon(AndroidUtils.getDrawableForDirection(app, shareIcon));
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {

View file

@ -393,7 +393,7 @@ public class TrackPointFragment extends OsmandExpandableListFragment implements
if (!mi.isActionViewExpanded()) {
createMenuItem(menu, SHARE_ID, R.string.shared_string_share, R.drawable.ic_action_gshare_dark, MenuItem.SHOW_AS_ACTION_NEVER);
createMenuItem(menu, SHARE_ID, R.string.shared_string_share, R.drawable.ic_action_gshare_dark, MenuItem.SHOW_AS_ACTION_NEVER, true);
GPXFile gpxFile = getGpx();
if (gpxFile != null && gpxFile.path != null) {
final MapMarkersHelper markersHelper = app.getMapMarkersHelper();

View file

@ -6,6 +6,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
@ -152,7 +153,9 @@ public class TrackSegmentFragment extends OsmAndListFragment implements TrackBit
GPXFile gpxFile = getGpx();
if (gpxFile != null) {
if (gpxFile.path != null && !gpxFile.showCurrentTrack) {
MenuItem item = menu.add(R.string.shared_string_share).setIcon(R.drawable.ic_action_gshare_dark)
Drawable shareIcon = app.getUIUtilities().getIcon((R.drawable.ic_action_gshare_dark));
MenuItem item = menu.add(R.string.shared_string_share)
.setIcon(AndroidUtils.getDrawableForDirection(app, shareIcon))
.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {

View file

@ -4,6 +4,7 @@ import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
@ -248,7 +249,9 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo
});
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
item = menu.add(R.string.shared_string_export).setIcon(R.drawable.ic_action_gshare_dark);
Drawable shareIcon = getMyApplication().getUIUtilities().getIcon((R.drawable.ic_action_gshare_dark));
item = menu.add(R.string.shared_string_export)
.setIcon(AndroidUtils.getDrawableForDirection(getMyApplication(), shareIcon));
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override

View file

@ -19,6 +19,7 @@ import android.view.ViewGroup;
import android.view.animation.DecelerateInterpolator;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import androidx.annotation.DrawableRes;
@ -485,6 +486,7 @@ public class ChooseRouteFragment extends BaseOsmAndFragment implements ContextMe
}
private void buildMenuButtons(@NonNull View view) {
OsmandApplication app = getMyApplication();
AppCompatImageView backButton = (AppCompatImageView) view.findViewById(R.id.back_button);
AppCompatImageButton backButtonFlow = (AppCompatImageButton) view.findViewById(R.id.back_button_flow);
OnClickListener backOnClick = new OnClickListener() {
@ -525,8 +527,13 @@ public class ChooseRouteFragment extends BaseOsmAndFragment implements ContextMe
saveRoute.setOnClickListener(saveOnClick);
saveRouteFlow.setOnClickListener(saveOnClick);
View shareRoute = view.findViewById(R.id.share_as_gpx);
View shareRouteFlow = view.findViewById(R.id.share_as_gpx_flow);
ImageView shareRoute = (ImageView) view.findViewById(R.id.share_as_gpx);
ImageView shareRouteFlow = (ImageView) view.findViewById(R.id.share_as_gpx_flow);
Drawable shareIcon = getIcon(R.drawable.ic_action_gshare_dark, nightMode ?
R.color.text_color_secondary_dark : R.color.text_color_secondary_light);
shareIcon = AndroidUtils.getDrawableForDirection(app, shareIcon);
shareRoute.setImageDrawable(shareIcon);
shareRouteFlow.setImageDrawable(shareIcon);
OnClickListener shareOnClick = new OnClickListener() {
@Override
public void onClick(View v) {

View file

@ -967,6 +967,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener
RoutingHelper routingHelper = app.getRoutingHelper();
final ApplicationMode applicationMode = routingHelper.getAppMode();
final RouteMenuAppModes mode = app.getRoutingOptionsHelper().getRouteMenuAppMode(applicationMode);
boolean isLayoutRTL = AndroidUtils.isLayoutRtl(app);
updateControlButtons(mapActivity, mainView);
LinearLayout optionsButton = (LinearLayout) mainView.findViewById(R.id.map_options_route_button);
@ -984,7 +985,9 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener
clickRouteParams();
}
});
AndroidUtils.setBackground(app, optionsButton, nightMode, R.drawable.route_info_trans_gradient_light, R.drawable.route_info_trans_gradient_dark);
AndroidUtils.setBackground(app, optionsButton, nightMode,
isLayoutRTL ? R.drawable.route_info_trans_gradient_left_light : R.drawable.route_info_trans_gradient_light,
isLayoutRTL ? R.drawable.route_info_trans_gradient_left_dark :R.drawable.route_info_trans_gradient_dark);
HorizontalScrollView scrollView = mainView.findViewById(R.id.route_options_scroll_container);
scrollView.setVerticalScrollBarEnabled(false);

View file

@ -242,6 +242,7 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC
Bundle savedInstanceState) {
final MapActivity mapActivity = getMapActivity();
final View view = inflater.inflate(R.layout.search_dialog_fragment, container, false);
final boolean nightMode = !app.getSettings().isLightContent();
toolbarController = new QuickSearchToolbarController();
toolbarController.setOnBackButtonClickListener(new OnClickListener() {
@ -483,7 +484,12 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC
);
titleEdit = (TextView) view.findViewById(R.id.titleEdit);
view.findViewById(R.id.shareButton).setOnClickListener(
Drawable shareIcon = app.getUIUtilities().getIcon(R.drawable.ic_action_gshare_dark,
nightMode ? R.color.text_color_secondary_dark : R.color.text_color_secondary_light);
shareIcon = AndroidUtils.getDrawableForDirection(app, shareIcon);
ImageView shareButton = (ImageView) view.findViewById(R.id.shareButton);
shareButton.setImageDrawable(shareIcon);
shareButton.setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {

View file

@ -396,6 +396,7 @@ public class MapControlsLayer extends OsmandMapLayer {
routePlanningBtn = createHudButton(routePlanButton, R.drawable.ic_action_gdirections_dark, ROUTE_PLANNING_HUD_ID)
.setIconColorId(R.color.map_button_icon_color_light, R.color.map_button_icon_color_dark)
.setBg(R.drawable.btn_round, R.drawable.btn_round_night);
routePlanningBtn.flipIconForRtl = true;
controls.add(routePlanningBtn);
routePlanButton.setOnClickListener(new View.OnClickListener() {
@Override
@ -990,6 +991,7 @@ public class MapControlsLayer extends OsmandMapLayer {
int resClrLight = R.color.map_button_icon_color_light;
int resClrDark = R.color.map_button_icon_color_dark;
String id;
boolean flipIconForRtl;
boolean nightMode = false;
boolean f = true;
@ -1158,6 +1160,9 @@ public class MapControlsLayer extends OsmandMapLayer {
d = ctx.getUIUtilities().getIcon(resLightId);
} else if (resId != 0) {
d = ctx.getUIUtilities().getIcon(resId, nightMode ? resClrDark : resClrLight);
if (flipIconForRtl) {
d = AndroidUtils.getDrawableForDirection(ctx, d);
}
}
if (iv instanceof ImageView) {
if (compass) {