package com.ly.supermvp.view.fragment; import android.text.TextUtils; import android.view.View; import com.ly.supermvp.R; import com.ly.supermvp.delegate.WeatherFragmentDelegate; import com.ly.supermvp.model.OnNetRequestListener; import com.ly.supermvp.model.weather.ShowApiWeather; import com.ly.supermvp.model.weather.WeatherModel; import com.ly.supermvp.model.weather.WeatherModelImpl; import com.ly.supermvp.mvp_frame.presenter.FragmentPresenter; import com.orhanobut.logger.Logger; /** * <Pre> * 天气预报fragment * </Pre> * * @author 刘阳 * @version 1.0 * <p/> * Create by 2016/2/29 17:43 * @see https://github.com/liuyanggithub/SuperMvp */ public class WeatherFragment extends FragmentPresenter<WeatherFragmentDelegate> implements View.OnClickListener { public static final String NEED_MORE_DAY = "1"; public static final String NEED_INDEX = "1"; public static final String NEED_ALARM = "1"; public static final String NEED_3_HOUR_FORCAST = "1"; private WeatherModel mWeatherModel; public static WeatherFragment newInstance() { WeatherFragment fragment = new WeatherFragment(); return fragment; } @Override protected Class<WeatherFragmentDelegate> getDelegateClass() { return WeatherFragmentDelegate.class; } @Override protected void initData() { super.initData(); mWeatherModel = new WeatherModelImpl(); } @Override protected void bindEvenListener() { super.bindEvenListener(); viewDelegate.setOnClickListener(this, R.id.bt_weather); } /** * 获取天气预报 */ private void netWeather() { if(TextUtils.isEmpty(viewDelegate.getInputLocation())){ viewDelegate.showSnackbar("输入为空"); return; } mWeatherModel.netLoadWeatherWithLocation(viewDelegate.getInputLocation(), NEED_MORE_DAY, NEED_INDEX, NEED_ALARM, NEED_3_HOUR_FORCAST, new OnNetRequestListener<ShowApiWeather>() { @Override public void onStart() { viewDelegate.showLoading(); } @Override public void onFinish() { viewDelegate.showContent(); } @Override public void onSuccess(ShowApiWeather weather) { Logger.d("onSuccess"); viewDelegate.closeSoftInput(); viewDelegate.showNowWeatherDialog(weather); } @Override public void onFailure(Throwable t) { viewDelegate.showSnackbar("请求错误"); Logger.d("onFailure"); } }); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.bt_weather: netWeather(); break; } } }