/
githubmirror
/
omim
Обзор
Документация
Войти
/
githubmirror
/
omim
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
android/src/com/mapswithme/maps/widget/StackedButtonDialogFragment.java
67 строк
2 KB
Александр Зацепин
[android] Migrated code to Android X
22 окт 2019, 15:11
22 окт 2019, 15:11
f2dd324
Код
Авторство
О чём код?
package com.mapswithme.maps.widget; import android.app.Dialog; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import com.mapswithme.maps.R; import com.mapswithme.util.Config; import com.mapswithme.util.NetworkPolicy; import com.mapswithme.util.statistics.Statistics; public class StackedButtonDialogFragment extends DialogFragment { @Nullable private NetworkPolicy.NetworkPolicyListener mListener; @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { return new StackedButtonsDialog.Builder(getContext()) .setTitle(R.string.mobile_data_dialog) .setMessage(R.string.mobile_data_description) .setCancelable(false) .setPositiveButton(R.string.mobile_data_option_always, (dialog, which) -> onDialogBtnClicked(NetworkPolicy.Type.ALWAYS, true)) .setNegativeButton(R.string.mobile_data_option_not_today, (dialog, which) -> onMobileDataImpactBtnClicked(NetworkPolicy.Type.NOT_TODAY, false)) .setNeutralButton(R.string.mobile_data_option_today, (dialog, which) -> onMobileDataImpactBtnClicked(NetworkPolicy.Type.TODAY, true)) .build(); } private void onMobileDataImpactBtnClicked(@NonNull NetworkPolicy.Type today, boolean canUse) { Config.setMobileDataTimeStamp(System.currentTimeMillis()); onDialogBtnClicked(today, canUse); } private void onDialogBtnClicked(@NonNull NetworkPolicy.Type type, boolean canUse) { Statistics.INSTANCE.trackNetworkUsageAlert(Statistics.EventName.MOBILE_INTERNET_ALERT, type.toStatisticValue()); Config.setUseMobileDataSettings(type); if (mListener != null) mListener.onResult(NetworkPolicy.newInstance(canUse)); } @Override public void show(@NonNull FragmentManager manager, @NonNull String tag) { FragmentTransaction ft = manager.beginTransaction(); ft.add(this, tag); ft.commitAllowingStateLoss(); } public void setListener(@Nullable NetworkPolicy.NetworkPolicyListener listener) { mListener = listener; } }