forked from organicmaps/organicmaps-tmp
[android] Added the dialog of network usage confirmation, clicks on the "turn on internet" button / discovery screen and PP
This commit is contained in:
parent
96e87ea63b
commit
66af7909dc
9 changed files with 191 additions and 118 deletions
|
@ -27,7 +27,6 @@ import com.mapswithme.maps.bookmarks.data.MapObject;
|
|||
import com.mapswithme.maps.gallery.GalleryAdapter;
|
||||
import com.mapswithme.maps.gallery.ItemSelectedListener;
|
||||
import com.mapswithme.maps.gallery.Items;
|
||||
import com.mapswithme.maps.gallery.impl.BaseItemSelectedListener;
|
||||
import com.mapswithme.maps.gallery.impl.Factory;
|
||||
import com.mapswithme.maps.gallery.impl.LoggableItemSelectedListener;
|
||||
import com.mapswithme.maps.metrics.UserActionsLogger;
|
||||
|
@ -132,12 +131,6 @@ public class DiscoveryFragment extends BaseMwmToolbarFragment implements Discove
|
|||
{
|
||||
RecyclerView catalogPromoRecycler = getGallery(R.id.catalog_promo_recycler);
|
||||
setLayoutManagerAndItemDecoration(requireContext(), catalogPromoRecycler);
|
||||
RecyclerView promoRecycler = getGallery(R.id.catalog_promo_recycler);
|
||||
GalleryAdapter galleryAdapter = mOnlineMode
|
||||
? Factory.createCatalogPromoLoadingAdapter(new CatalogPromoSelectedListener(requireActivity()))
|
||||
: Factory.createCatalogPromoErrorAdapter(new ErrorCatalogPromoListener<>(requireActivity()));
|
||||
|
||||
promoRecycler.setAdapter(galleryAdapter);
|
||||
}
|
||||
|
||||
private static void setLayoutManagerAndItemDecoration(@NonNull Context context,
|
||||
|
@ -195,12 +188,14 @@ public class DiscoveryFragment extends BaseMwmToolbarFragment implements Discove
|
|||
|
||||
private void requestDiscoveryInfoAndInitAdapters()
|
||||
{
|
||||
NetworkPolicy.checkNetworkPolicy(getFragmentManager(), policy ->
|
||||
{
|
||||
mOnlineMode = policy.canUseNetwork();
|
||||
initNetworkBasedAdapters();
|
||||
requestDiscoveryInfo();
|
||||
});
|
||||
NetworkPolicy.checkNetworkPolicy(getFragmentManager(), this::onNetworkPolicyResult);
|
||||
}
|
||||
|
||||
private void onNetworkPolicyResult(@NonNull NetworkPolicy policy)
|
||||
{
|
||||
mOnlineMode = policy.canUseNetwork();
|
||||
initNetworkBasedAdapters();
|
||||
requestDiscoveryInfo();
|
||||
}
|
||||
|
||||
private void initSearchBasedAdapters()
|
||||
|
@ -212,12 +207,15 @@ public class DiscoveryFragment extends BaseMwmToolbarFragment implements Discove
|
|||
|
||||
private void initNetworkBasedAdapters()
|
||||
{
|
||||
if (!mOnlineMode)
|
||||
return;
|
||||
|
||||
RecyclerView promoRecycler = getGallery(R.id.catalog_promo_recycler);
|
||||
BaseItemSelectedListener<Items.Item> listener = new CatalogPromoSelectedListener(requireActivity());
|
||||
promoRecycler.setAdapter(Factory.createCatalogPromoLoadingAdapter(listener));
|
||||
ItemSelectedListener<Items.Item> listener = mOnlineMode
|
||||
? new CatalogPromoSelectedListener(requireActivity())
|
||||
: new ErrorCatalogPromoListener<>(requireActivity(),
|
||||
this::onNetworkPolicyResult);
|
||||
|
||||
GalleryAdapter adapter = mOnlineMode ? Factory.createCatalogPromoLoadingAdapter()
|
||||
: Factory.createCatalogPromoNoConnectionAdapter(listener);
|
||||
promoRecycler.setAdapter(adapter);
|
||||
}
|
||||
|
||||
private void requestDiscoveryInfo()
|
||||
|
@ -296,8 +294,6 @@ public class DiscoveryFragment extends BaseMwmToolbarFragment implements Discove
|
|||
@Override
|
||||
public void onCatalogPromoResultReceived(@NonNull PromoCityGallery gallery)
|
||||
{
|
||||
updateViewsVisibility(gallery.getItems(), R.id.catalog_promo_recycler,
|
||||
R.id.catalog_promo_title);
|
||||
if (gallery.getItems().length == 0)
|
||||
return;
|
||||
|
||||
|
@ -332,9 +328,7 @@ public class DiscoveryFragment extends BaseMwmToolbarFragment implements Discove
|
|||
Statistics.INSTANCE.trackGalleryError(LOCAL_EXPERTS, DISCOVERY, null);
|
||||
break;
|
||||
case PROMO:
|
||||
ErrorCatalogPromoListener<Items.Item> listener =
|
||||
new ErrorCatalogPromoListener<>(requireActivity());
|
||||
GalleryAdapter adapter = Factory.createCatalogPromoErrorAdapter(listener);
|
||||
GalleryAdapter adapter = Factory.createCatalogPromoErrorAdapter(null);
|
||||
RecyclerView gallery = getGallery(R.id.catalog_promo_recycler);
|
||||
gallery.setAdapter(adapter);
|
||||
Statistics.INSTANCE.trackGalleryError(PROMO, DISCOVERY, null);
|
||||
|
|
|
@ -506,7 +506,7 @@ public class Holders
|
|||
super.bind(item);
|
||||
getTitle().setText(R.string.gallery_pp_download_guides_offline_title);
|
||||
mSubTitle.setText(R.string.gallery_pp_download_guides_offline_subtitle);
|
||||
UiUtils.hide(getButton());
|
||||
UiUtils.invisible(getButton());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,11 +3,13 @@ package com.mapswithme.maps.gallery.impl;
|
|||
import android.content.Context;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.view.View;
|
||||
|
||||
import com.mapswithme.maps.R;
|
||||
import com.mapswithme.maps.discovery.LocalExpert;
|
||||
import com.mapswithme.maps.gallery.Constants;
|
||||
import com.mapswithme.maps.gallery.GalleryAdapter;
|
||||
import com.mapswithme.maps.gallery.Holders;
|
||||
import com.mapswithme.maps.gallery.ItemSelectedListener;
|
||||
import com.mapswithme.maps.gallery.Items;
|
||||
import com.mapswithme.maps.promo.PromoCityGallery;
|
||||
|
@ -105,18 +107,39 @@ public class Factory
|
|||
}
|
||||
|
||||
@NonNull
|
||||
public static GalleryAdapter createCatalogPromoLoadingAdapter(@NonNull ItemSelectedListener<Items.Item> listener)
|
||||
public static GalleryAdapter createCatalogPromoLoadingAdapter()
|
||||
{
|
||||
CatalogPromoLoadingAdapterStrategy strategy = new CatalogPromoLoadingAdapterStrategy(null, null);
|
||||
return new GalleryAdapter<>(strategy);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public static GalleryAdapter createCatalogPromoErrorAdapter(@NonNull ItemSelectedListener<Items.Item> listener)
|
||||
public static GalleryAdapter createCatalogPromoNoConnectionAdapter(@Nullable ItemSelectedListener<Items.Item> listener)
|
||||
{
|
||||
return new GalleryAdapter<>(new CatalogPromoErrorAdapterStrategy(listener));
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public static GalleryAdapter createCatalogPromoErrorAdapter(@Nullable ItemSelectedListener<Items.Item> listener)
|
||||
{
|
||||
return new GalleryAdapter<>(new CatalogPromoErrorAdapterStrategy(listener)
|
||||
{
|
||||
@Override
|
||||
protected Holders.SimpleViewHolder createViewHolder(@NonNull View itemView)
|
||||
{
|
||||
return new Holders.CatalogErrorHolder(itemView, mItems, getListener())
|
||||
{
|
||||
@Override
|
||||
public void bind(@NonNull Items.Item item)
|
||||
{
|
||||
super.bind(item);
|
||||
getButton().setVisibility(View.INVISIBLE);
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static <Product> void trackProductGalleryShownOrError(@NonNull Product[] products,
|
||||
@NonNull GalleryType type,
|
||||
@NonNull GalleryState state,
|
||||
|
|
|
@ -519,10 +519,10 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment
|
|||
if (mobilePref == null)
|
||||
return;
|
||||
|
||||
int curValue = Config.getUseMobileDataSettings();
|
||||
NetworkPolicy.Type curValue = Config.getUseMobileDataSettings();
|
||||
|
||||
if (curValue != NetworkPolicy.NOT_TODAY && curValue != NetworkPolicy.TODAY
|
||||
&& curValue != NetworkPolicy.NONE)
|
||||
if (curValue != NetworkPolicy.Type.NOT_TODAY && curValue != NetworkPolicy.Type.TODAY
|
||||
&& curValue != NetworkPolicy.Type.NONE)
|
||||
{
|
||||
mobilePref.setValue(String.valueOf(curValue));
|
||||
mobilePref.setSummary(mobilePref.getEntry());
|
||||
|
@ -537,20 +537,16 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment
|
|||
public boolean onPreferenceChange(Preference preference, Object newValue)
|
||||
{
|
||||
String valueStr = (String)newValue;
|
||||
switch (Integer.parseInt(valueStr))
|
||||
{
|
||||
case NetworkPolicy.ASK:
|
||||
Config.setUseMobileDataSettings(NetworkPolicy.ASK);
|
||||
break;
|
||||
case NetworkPolicy.ALWAYS:
|
||||
Config.setUseMobileDataSettings(NetworkPolicy.ALWAYS);
|
||||
break;
|
||||
case NetworkPolicy.NEVER:
|
||||
Config.setUseMobileDataSettings(NetworkPolicy.NEVER);
|
||||
break;
|
||||
default:
|
||||
throw new AssertionError("Wrong NetworkPolicy type!");
|
||||
}
|
||||
int value = Integer.parseInt(valueStr);
|
||||
NetworkPolicy.Type type = NetworkPolicy.Type.values()[value];
|
||||
|
||||
if (type == NetworkPolicy.Type.ALWAYS
|
||||
|| type == NetworkPolicy.Type.ASK
|
||||
|| type == NetworkPolicy.Type.NEVER)
|
||||
|
||||
Config.setUseMobileDataSettings(type);
|
||||
else
|
||||
throw new AssertionError("Wrong NetworkPolicy type, value = " + valueStr);
|
||||
|
||||
UiThread.runLater(new Runnable()
|
||||
{
|
||||
|
|
|
@ -32,7 +32,7 @@ public class StackedButtonDialogFragment extends DialogFragment
|
|||
@Override
|
||||
public void onClick(DialogInterface dialog, int which)
|
||||
{
|
||||
Config.setUseMobileDataSettings(NetworkPolicy.ALWAYS);
|
||||
Config.setUseMobileDataSettings(NetworkPolicy.Type.ALWAYS);
|
||||
if (mListener != null)
|
||||
mListener.onResult(NetworkPolicy.newInstance(true));
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ public class StackedButtonDialogFragment extends DialogFragment
|
|||
@Override
|
||||
public void onClick(DialogInterface dialog, int which)
|
||||
{
|
||||
Config.setUseMobileDataSettings(NetworkPolicy.NOT_TODAY);
|
||||
Config.setUseMobileDataSettings(NetworkPolicy.Type.NOT_TODAY);
|
||||
Config.setMobileDataTimeStamp(System.currentTimeMillis());
|
||||
if (mListener != null)
|
||||
mListener.onResult(NetworkPolicy.newInstance(false));
|
||||
|
@ -53,7 +53,7 @@ public class StackedButtonDialogFragment extends DialogFragment
|
|||
@Override
|
||||
public void onClick(DialogInterface dialog, int which)
|
||||
{
|
||||
Config.setUseMobileDataSettings(NetworkPolicy.TODAY);
|
||||
Config.setUseMobileDataSettings(NetworkPolicy.Type.TODAY);
|
||||
Config.setMobileDataTimeStamp(System.currentTimeMillis());
|
||||
if (mListener != null)
|
||||
mListener.onResult(NetworkPolicy.newInstance(true));
|
||||
|
|
|
@ -1,19 +1,25 @@
|
|||
package com.mapswithme.maps.widget.placepage;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.FragmentActivity;
|
||||
|
||||
import com.mapswithme.maps.gallery.Items;
|
||||
import com.mapswithme.util.ConnectionState;
|
||||
import com.mapswithme.util.NetworkPolicy;
|
||||
import com.mapswithme.util.Utils;
|
||||
|
||||
public class ErrorCatalogPromoListener<T extends Items.Item> implements com.mapswithme.maps.gallery.ItemSelectedListener<T>
|
||||
{
|
||||
@NonNull
|
||||
private final Activity mActivity;
|
||||
private final FragmentActivity mActivity;
|
||||
@NonNull
|
||||
private final NetworkPolicy.NetworkPolicyListener mListener;
|
||||
|
||||
public ErrorCatalogPromoListener(@NonNull Activity activity)
|
||||
public ErrorCatalogPromoListener(@NonNull FragmentActivity activity,
|
||||
@NonNull NetworkPolicy.NetworkPolicyListener listener)
|
||||
{
|
||||
mActivity = activity;
|
||||
mListener = listener;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -29,11 +35,14 @@ public class ErrorCatalogPromoListener<T extends Items.Item> implements com.maps
|
|||
@Override
|
||||
public void onItemSelected(@NonNull T item, int position)
|
||||
{
|
||||
Utils.showSystemSettings(getActivity());
|
||||
if (ConnectionState.isConnected())
|
||||
NetworkPolicy.checkNetworkPolicy(mActivity.getSupportFragmentManager(), mListener, true);
|
||||
else
|
||||
Utils.showSystemSettings(getActivity());
|
||||
}
|
||||
|
||||
@NonNull
|
||||
protected Activity getActivity()
|
||||
protected FragmentActivity getActivity()
|
||||
{
|
||||
return mActivity;
|
||||
}
|
||||
|
|
|
@ -397,8 +397,7 @@ public class PlacePageView extends NestedScrollView
|
|||
@Override
|
||||
public void onErrorReceived()
|
||||
{
|
||||
ErrorCatalogPromoListener<Items.Item> listener = new ErrorCatalogPromoListener<>(getActivity());
|
||||
com.mapswithme.maps.gallery.GalleryAdapter adapter = Factory.createCatalogPromoErrorAdapter(listener);
|
||||
com.mapswithme.maps.gallery.GalleryAdapter adapter = Factory.createCatalogPromoErrorAdapter(null);
|
||||
mCatalogPromoRecycler.setAdapter(adapter);
|
||||
Statistics.INSTANCE.trackGalleryError(GalleryType.PROMO, GalleryPlacement.PLACEPAGE,
|
||||
Statistics.ParamValue.NO_PRODUCTS);
|
||||
|
@ -875,8 +874,7 @@ public class PlacePageView extends NestedScrollView
|
|||
mCatalogPromoTitleView = findViewById(R.id.catalog_promo_title);
|
||||
BaseItemSelectedListener<Items.Item> listener =
|
||||
new BaseItemSelectedListener<>(getActivity());
|
||||
com.mapswithme.maps.gallery.GalleryAdapter adapter =
|
||||
Factory.createCatalogPromoLoadingAdapter(listener);
|
||||
com.mapswithme.maps.gallery.GalleryAdapter adapter = Factory.createCatalogPromoLoadingAdapter();
|
||||
mCatalogPromoRecycler.setNestedScrollingEnabled(false);
|
||||
LinearLayoutManager layoutManager = new LinearLayoutManager(getContext(),
|
||||
LinearLayoutManager.HORIZONTAL,
|
||||
|
@ -1254,11 +1252,18 @@ public class PlacePageView extends NestedScrollView
|
|||
if (mSponsored == null || mMapObject == null)
|
||||
return;
|
||||
|
||||
if (hasPromoGallery)
|
||||
if (hasPromoGallery && policy.canUseNetwork())
|
||||
{
|
||||
Promo.INSTANCE.nativeRequestCityGallery(policy, mMapObject.getLat(), mMapObject.getLon(),
|
||||
UTM.UTM_PLACEPAGE_GALLERY);
|
||||
}
|
||||
else if (hasPromoGallery)
|
||||
{
|
||||
ErrorCatalogPromoListener<Items.Item> listener =
|
||||
new ErrorCatalogPromoListener<>(getActivity(), this::onNetworkPolicyResult);
|
||||
com.mapswithme.maps.gallery.GalleryAdapter adapter = Factory.createCatalogPromoNoConnectionAdapter(listener);
|
||||
mCatalogPromoRecycler.setAdapter(adapter);
|
||||
}
|
||||
|
||||
mSponsored.updateId(mMapObject);
|
||||
mSponsoredPrice = mSponsored.getPrice();
|
||||
|
@ -1274,6 +1279,16 @@ public class PlacePageView extends NestedScrollView
|
|||
Sponsored.requestInfo(mSponsored, Locale.getDefault().toString(), policy);
|
||||
}
|
||||
|
||||
private void onNetworkPolicyResult(@NonNull NetworkPolicy policy)
|
||||
{
|
||||
if (policy.canUseNetwork())
|
||||
{
|
||||
Promo.INSTANCE.nativeRequestCityGallery(policy, mMapObject.getLat(), mMapObject.getLon(),
|
||||
UTM.UTM_PLACEPAGE_GALLERY);
|
||||
mCatalogPromoRecycler.setAdapter(Factory.createCatalogPromoLoadingAdapter());
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isNetworkNeeded()
|
||||
{
|
||||
return mMapObject != null && (isSponsored() || mMapObject.getBanners() != null);
|
||||
|
|
|
@ -251,31 +251,23 @@ public final class Config
|
|||
nativeSetLargeFontsSize(value);
|
||||
}
|
||||
|
||||
@NetworkPolicy.NetworkPolicyDef
|
||||
public static int getUseMobileDataSettings()
|
||||
@NonNull
|
||||
public static NetworkPolicy.Type getUseMobileDataSettings()
|
||||
{
|
||||
switch(getInt(KEY_MISC_USE_MOBILE_DATA, NetworkPolicy.NONE))
|
||||
{
|
||||
case NetworkPolicy.ASK:
|
||||
return NetworkPolicy.ASK;
|
||||
case NetworkPolicy.ALWAYS:
|
||||
return NetworkPolicy.ALWAYS;
|
||||
case NetworkPolicy.NEVER:
|
||||
return NetworkPolicy.NEVER;
|
||||
case NetworkPolicy.NOT_TODAY:
|
||||
return NetworkPolicy.NOT_TODAY;
|
||||
case NetworkPolicy.TODAY:
|
||||
return NetworkPolicy.TODAY;
|
||||
case NetworkPolicy.NONE:
|
||||
return NetworkPolicy.NONE;
|
||||
}
|
||||
int value = getInt(KEY_MISC_USE_MOBILE_DATA, NetworkPolicy.NONE);
|
||||
|
||||
throw new AssertionError("Wrong NetworkPolicy type!");
|
||||
if ((value != NetworkPolicy.NONE && value < 0) || value >= NetworkPolicy.Type.values().length)
|
||||
throw new AssertionError("Wrong NetworkPolicy type : " + value);
|
||||
|
||||
if (value == NetworkPolicy.NONE)
|
||||
return NetworkPolicy.Type.NONE;
|
||||
|
||||
return NetworkPolicy.Type.values()[value];
|
||||
}
|
||||
|
||||
public static void setUseMobileDataSettings(@NetworkPolicy.NetworkPolicyDef int value)
|
||||
public static void setUseMobileDataSettings(@NonNull NetworkPolicy.Type value)
|
||||
{
|
||||
setInt(KEY_MISC_USE_MOBILE_DATA, value);
|
||||
setInt(KEY_MISC_USE_MOBILE_DATA, value.ordinal());
|
||||
setBool(KEY_MISC_USE_MOBILE_DATA_ROAMING, ConnectionState.isInRoaming());
|
||||
}
|
||||
|
||||
|
|
|
@ -12,23 +12,87 @@ import java.util.concurrent.TimeUnit;
|
|||
|
||||
public final class NetworkPolicy
|
||||
{
|
||||
public enum Type
|
||||
{
|
||||
ASK,
|
||||
|
||||
ALWAYS
|
||||
{
|
||||
@Override
|
||||
public void apply(@NonNull FragmentManager fragmentManager,
|
||||
@NonNull NetworkPolicyListener listener, boolean isDialogAllowed)
|
||||
{
|
||||
boolean nowInRoaming = ConnectionState.isInRoaming();
|
||||
boolean acceptedInRoaming = Config.getMobileDataRoaming();
|
||||
|
||||
if (nowInRoaming && !acceptedInRoaming)
|
||||
showDialog(fragmentManager, listener);
|
||||
else
|
||||
listener.onResult(new NetworkPolicy(true));
|
||||
}
|
||||
},
|
||||
|
||||
NEVER
|
||||
{
|
||||
@Override
|
||||
public void apply(@NonNull FragmentManager fragmentManager,
|
||||
@NonNull NetworkPolicyListener listener, boolean isDialogAllowed)
|
||||
{
|
||||
if (isDialogAllowed)
|
||||
showDialog(fragmentManager, listener);
|
||||
else
|
||||
listener.onResult(new NetworkPolicy(false));
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
NOT_TODAY
|
||||
{
|
||||
@Override
|
||||
public void apply(@NonNull FragmentManager fragmentManager,
|
||||
@NonNull NetworkPolicyListener listener, boolean isDialogAllowed)
|
||||
{
|
||||
if (isDialogAllowed)
|
||||
showDialog(fragmentManager, listener);
|
||||
else
|
||||
showDialogIfNeeded(fragmentManager, listener, new NetworkPolicy(false));
|
||||
}
|
||||
},
|
||||
|
||||
TODAY
|
||||
{
|
||||
@Override
|
||||
public void apply(@NonNull FragmentManager fragmentManager,
|
||||
@NonNull NetworkPolicyListener listener, boolean isDialogAllowed)
|
||||
{
|
||||
boolean nowInRoaming = ConnectionState.isInRoaming();
|
||||
boolean acceptedInRoaming = Config.getMobileDataRoaming();
|
||||
|
||||
if (nowInRoaming && !acceptedInRoaming)
|
||||
showDialog(fragmentManager, listener);
|
||||
else
|
||||
showDialogIfNeeded(fragmentManager, listener, new NetworkPolicy(true));
|
||||
}
|
||||
},
|
||||
|
||||
NONE;
|
||||
|
||||
public void apply(@NonNull FragmentManager fragmentManager,
|
||||
@NonNull final NetworkPolicyListener listener,
|
||||
boolean isDialogAllowed)
|
||||
{
|
||||
showDialog(fragmentManager, listener);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static final int NONE = -1;
|
||||
public static final int ASK = 0;
|
||||
public static final int ALWAYS = 1;
|
||||
public static final int NEVER = 2;
|
||||
public static final int NOT_TODAY = 3;
|
||||
public static final int TODAY = 4;
|
||||
|
||||
private static final String TAG_NETWORK_POLICY = "network_policy";
|
||||
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@IntDef({ NONE, ASK, ALWAYS, NEVER, NOT_TODAY, TODAY })
|
||||
@interface NetworkPolicyDef
|
||||
{
|
||||
}
|
||||
|
||||
public static void checkNetworkPolicy(@NonNull FragmentManager fragmentManager,
|
||||
@NonNull final NetworkPolicyListener listener)
|
||||
@NonNull final NetworkPolicyListener listener,
|
||||
boolean isDialogAllowed)
|
||||
{
|
||||
if (ConnectionState.isWifiConnected())
|
||||
{
|
||||
|
@ -42,34 +106,14 @@ public final class NetworkPolicy
|
|||
return;
|
||||
}
|
||||
|
||||
boolean nowInRoaming = ConnectionState.isInRoaming();
|
||||
boolean acceptedInRoaming = Config.getMobileDataRoaming();
|
||||
int type = Config.getUseMobileDataSettings();
|
||||
switch (type)
|
||||
{
|
||||
case ASK:
|
||||
case NONE:
|
||||
showDialog(fragmentManager, listener);
|
||||
break;
|
||||
case ALWAYS:
|
||||
if (nowInRoaming && !acceptedInRoaming)
|
||||
showDialog(fragmentManager, listener);
|
||||
else
|
||||
listener.onResult(new NetworkPolicy(true));
|
||||
break;
|
||||
case NEVER:
|
||||
listener.onResult(new NetworkPolicy(false));
|
||||
break;
|
||||
case NOT_TODAY:
|
||||
showDialogIfNeeded(fragmentManager, listener, new NetworkPolicy(false));
|
||||
break;
|
||||
case TODAY:
|
||||
if (nowInRoaming && !acceptedInRoaming)
|
||||
showDialog(fragmentManager, listener);
|
||||
else
|
||||
showDialogIfNeeded(fragmentManager, listener, new NetworkPolicy(true));
|
||||
break;
|
||||
}
|
||||
Type type = Config.getUseMobileDataSettings();
|
||||
type.apply(fragmentManager, listener, isDialogAllowed);
|
||||
}
|
||||
|
||||
public static void checkNetworkPolicy(@NonNull FragmentManager fragmentManager,
|
||||
@NonNull final NetworkPolicyListener listener)
|
||||
{
|
||||
checkNetworkPolicy(fragmentManager, listener, false);
|
||||
}
|
||||
|
||||
public static boolean getCurrentNetworkUsageStatus()
|
||||
|
@ -85,8 +129,8 @@ public final class NetworkPolicy
|
|||
if (nowInRoaming && !acceptedInRoaming)
|
||||
return false;
|
||||
|
||||
int type = Config.getUseMobileDataSettings();
|
||||
return type == ALWAYS || (type == TODAY && isToday());
|
||||
Type type = Config.getUseMobileDataSettings();
|
||||
return type == Type.ALWAYS || (type == Type.TODAY && isToday());
|
||||
}
|
||||
|
||||
private static boolean isToday()
|
||||
|
|
Loading…
Add table
Reference in a new issue