[android] Created factory for Driving Options Dialog

This commit is contained in:
Dmitry Donskoy 2019-04-08 12:41:37 +03:00 committed by Aleksandr Zatsepin
parent 5baa3eba3d
commit 924711534c
5 changed files with 63 additions and 6 deletions

View file

@ -50,6 +50,7 @@ import com.mapswithme.maps.bookmarks.data.CatalogCustomProperty;
import com.mapswithme.maps.bookmarks.data.CatalogTagsGroup;
import com.mapswithme.maps.bookmarks.data.FeatureId;
import com.mapswithme.maps.bookmarks.data.MapObject;
import com.mapswithme.maps.dialog.AlertDialogCallback;
import com.mapswithme.maps.dialog.DialogUtils;
import com.mapswithme.maps.discovery.DiscoveryActivity;
import com.mapswithme.maps.discovery.DiscoveryFragment;
@ -156,7 +157,8 @@ public class MwmActivity extends BaseMwmFragmentActivity
BookmarkManager.BookmarksCatalogListener,
AdsRemovalPurchaseControllerProvider,
AdsRemovalActivationCallback,
PlacePageController.SlideListener
PlacePageController.SlideListener,
AlertDialogCallback
{
private static final Logger LOGGER = LoggerFactory.INSTANCE.getLogger(LoggerFactory.Type.MISC);
private static final String TAG = MwmActivity.class.getSimpleName();
@ -2260,6 +2262,26 @@ public class MwmActivity extends BaseMwmFragmentActivity
// Do nothing
}
@Override
public void onAlertDialogPositiveClick(int requestCode, int which)
{
if (requestCode == REQ_CODE_DRIVING_OPTIONS)
DrivingOptionsActivity.start(this);
}
@Override
public void onAlertDialogNegativeClick(int requestCode, int which)
{
// Do nothing
}
@Override
public void onAlertDialogCancel(int requestCode)
{
// Do nothing
}
@Override
public void onBookmarksFileLoaded(boolean success)
{

View file

@ -107,6 +107,11 @@ public class AlertDialog extends BaseMwmDialogFragment
mTargetCallback = null;
}
protected void setTargetCallback(@Nullable AlertDialogCallback targetCallback)
{
mTargetCallback = targetCallback;
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)

View file

@ -0,0 +1,14 @@
package com.mapswithme.maps.dialog;
import android.content.Context;
public class DrivingOptionsDialog extends AlertDialog
{
@Override
public void onAttach(Context context)
{
super.onAttach(context);
AlertDialogCallback callback = (AlertDialogCallback) getActivity();
setTargetCallback(callback);
}
}

View file

@ -0,0 +1,13 @@
package com.mapswithme.maps.dialog;
import android.support.annotation.NonNull;
public class DrivingOptionsDialogFactory implements DialogFactory
{
@NonNull
@Override
public AlertDialog createDialog()
{
return new DrivingOptionsDialog();
}
}

View file

@ -17,10 +17,12 @@ import android.view.View;
import android.widget.TextView;
import com.mapswithme.maps.Framework;
import com.mapswithme.maps.MwmActivity;
import com.mapswithme.maps.MwmApplication;
import com.mapswithme.maps.R;
import com.mapswithme.maps.bookmarks.data.FeatureId;
import com.mapswithme.maps.bookmarks.data.MapObject;
import com.mapswithme.maps.dialog.DrivingOptionsDialogFactory;
import com.mapswithme.maps.downloader.MapManager;
import com.mapswithme.maps.location.LocationHelper;
import com.mapswithme.maps.taxi.TaxiInfo;
@ -40,8 +42,6 @@ import com.mapswithme.util.statistics.Statistics;
import java.util.Calendar;
import java.util.concurrent.TimeUnit;
import static com.mapswithme.maps.MwmActivity.ERROR_CALCULATE_ROUTE_FIRST_TIME_TAG;
import static com.mapswithme.maps.MwmActivity.REQ_CODE_ERROR_CALCULATE_ROUTE_FIRST_TIME;
import static com.mapswithme.util.statistics.Statistics.EventName.ROUTING_POINT_ADD;
import static com.mapswithme.util.statistics.Statistics.EventName.ROUTING_POINT_REMOVE;
@ -228,15 +228,18 @@ public class RoutingController implements TaxiManager.TaxiListener
private void showUnableCalculateRouteFirstTimeDialog()
{
com.mapswithme.maps.dialog.AlertDialog dialog = new com.mapswithme.maps.dialog.AlertDialog.Builder()
com.mapswithme.maps.dialog.AlertDialog dialog =
new com.mapswithme.maps.dialog.AlertDialog.Builder()
.setTitleId(R.string.unable_to_calc_alert_title)
.setMessageId(R.string.unable_to_calc_alert_subtitle)
.setPositiveBtnId(R.string.settings)
.setNegativeBtnId(R.string.cancel)
.setReqCode(REQ_CODE_ERROR_CALCULATE_ROUTE_FIRST_TIME)
.setReqCode(MwmActivity.REQ_CODE_ERROR_CALCULATE_ROUTE_FIRST_TIME)
.setDialogFactory(new DrivingOptionsDialogFactory())
.setFragManagerStrategyType(com.mapswithme.maps.dialog.AlertDialog.FragManagerStrategyType.ACTIVITY_FRAGMENT_MANAGER)
.build();
dialog.show(mContainer.getActivity(), ERROR_CALCULATE_ROUTE_FIRST_TIME_TAG);
dialog.show(mContainer.getActivity(),
MwmActivity.ERROR_CALCULATE_ROUTE_FIRST_TIME_TAG);
}
private void setState(State newState)