This commit is contained in:
androiddevkotlin 2021-03-15 10:15:48 +02:00
parent a592b397fc
commit ded818b092
2 changed files with 18 additions and 12 deletions

View file

@ -10,15 +10,12 @@ import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.LayerDrawable; import android.graphics.drawable.LayerDrawable;
import android.graphics.drawable.RippleDrawable; import android.graphics.drawable.RippleDrawable;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Build; import android.os.Build;
import android.text.SpannableString; import android.text.SpannableString;
import android.text.Spanned; import android.text.Spanned;
import android.text.style.StyleSpan; import android.text.style.StyleSpan;
import android.view.Gravity; import android.view.Gravity;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Surface;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.ViewParent; import android.view.ViewParent;
@ -67,6 +64,10 @@ public class UiUtilities {
private static final Log LOG = PlatformUtil.getLog(UiUtilities.class); private static final Log LOG = PlatformUtil.getLog(UiUtilities.class);
private static final int ORIENTATION_0 = 0;
private static final int ORIENTATION_90 = 3;
private static final int ORIENTATION_270 = 1;
private static final int ORIENTATION_180 = 2;
private final TLongObjectHashMap<Drawable> drawableCache = new TLongObjectHashMap<>(); private final TLongObjectHashMap<Drawable> drawableCache = new TLongObjectHashMap<>();
private final OsmandApplication app; private final OsmandApplication app;
private static final int INVALID_ID = -1; private static final int INVALID_ID = -1;
@ -250,8 +251,14 @@ public class UiUtilities {
} }
public UpdateLocationViewCache getUpdateLocationViewCache() { public UpdateLocationViewCache getUpdateLocationViewCache() {
return getUpdateLocationViewCache(true);
}
public UpdateLocationViewCache getUpdateLocationViewCache(boolean useScreenOrientation) {
UpdateLocationViewCache uvc = new UpdateLocationViewCache(); UpdateLocationViewCache uvc = new UpdateLocationViewCache();
if (useScreenOrientation) {
uvc.screenOrientation = getScreenOrientation(); uvc.screenOrientation = getScreenOrientation();
}
return uvc; return uvc;
} }
@ -357,16 +364,16 @@ public class UiUtilities {
public int getScreenOrientation() { public int getScreenOrientation() {
int screenOrientation = ((WindowManager) app.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getRotation(); int screenOrientation = ((WindowManager) app.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getRotation();
switch (screenOrientation) { switch (screenOrientation) {
case Surface.ROTATION_0: // Device default (normally portrait) case ORIENTATION_0: // Device default (normally portrait)
screenOrientation = 0; screenOrientation = 0;
break; break;
case Surface.ROTATION_90: // Landscape right case ORIENTATION_90: // Landscape right
screenOrientation = 90; screenOrientation = 90;
break; break;
case Surface.ROTATION_270: // Landscape left case ORIENTATION_270: // Landscape left
screenOrientation = 270; screenOrientation = 270;
break; break;
case Surface.ROTATION_180: // Upside down case ORIENTATION_180: // Upside down
screenOrientation = 180; screenOrientation = 180;
break; break;
} }

View file

@ -1385,8 +1385,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo
if (MapRouteInfoMenu.chooseRoutesVisible) { if (MapRouteInfoMenu.chooseRoutesVisible) {
mapActivity.getChooseRouteFragment().dismiss(); mapActivity.getChooseRouteFragment().dismiss();
} }
updateLocationViewCache = mapActivity.getMyApplication().getUIUtilities().getUpdateLocationViewCache(); updateLocationViewCache = mapActivity.getMyApplication().getUIUtilities().getUpdateLocationViewCache(false);
updateLocationViewCache.setScreenOrientation(0);
mapActivity.getMapViewTrackingUtilities().setContextMenu(menu); mapActivity.getMapViewTrackingUtilities().setContextMenu(menu);
mapActivity.getMapViewTrackingUtilities().setMapLinkedToLocation(false); mapActivity.getMapViewTrackingUtilities().setMapLinkedToLocation(false);
wasDrawerDisabled = mapActivity.isDrawerDisabled(); wasDrawerDisabled = mapActivity.isDrawerDisabled();