From c18c4801fa3d3761263f6ccb0532b7feb39f7d4e Mon Sep 17 00:00:00 2001 From: lambert Date: Thu, 12 Sep 2019 17:58:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=85=A5=E5=B7=A5=E5=85=B7=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3;=E5=B7=A5=E5=85=B7=E9=A1=B5=E9=9D=A2=E7=BC=96?= =?UTF-8?q?=E5=86=99;=E5=A4=A9=E6=B0=94=E9=A1=B5=E9=9D=A2=E9=83=A8?= =?UTF-8?q?=E5=88=86=E7=BC=96=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base/build.gradle | 2 + .../base/assist/ConfigConstants.java | 8 +- config.gradle | 1 + main/src/main/AndroidManifest.xml | 6 + main/src/main/debug/AndroidManifest.xml | 6 + .../java/com/heyongrui/main/HomeFragment.java | 13 +- .../main/adapter/DragAndSwipeAdapter.java | 31 ++ .../main/adapter/ExpandableAdapter.java | 32 ++ .../main/adapter/HomeSectionAdapter.java | 89 ++++ .../main/adapter/HomeSectionEntity.java | 80 +++ .../main/dagger/ActivityContext.java | 12 + .../heyongrui/main/dagger/HomeComponent.java | 27 + .../com/heyongrui/main/dagger/HomeModule.java | 62 +++ .../com/heyongrui/main/data/api/MobApi.java | 76 +++ .../main/data/dto/DictionaryDto.java | 87 ++++ .../heyongrui/main/data/dto/FlightDto.java | 177 +++++++ .../heyongrui/main/data/dto/IDCardDto.java | 37 ++ .../com/heyongrui/main/data/dto/IdiomDto.java | 67 +++ .../heyongrui/main/data/dto/MobResponse.java | 31 ++ .../heyongrui/main/data/dto/WeatherDto.java | 473 ++++++++++++++++++ .../main/data/service/MobService.java | 93 ++++ .../main/mob/contract/MobContract.java | 47 ++ .../main/mob/presenter/MobPresenter.java | 227 +++++++++ .../main/mob/view/BezierEvaluator.java | 50 ++ .../heyongrui/main/mob/view/MobActivity.java | 264 ++++++++++ .../main/mob/view/MobWeatherActivity.java | 135 +++++ .../res/drawable-xhdpi/bg_weather_one.jpg | Bin 0 -> 94472 bytes .../res/drawable-xhdpi/bg_weather_three.jpg | Bin 0 -> 19481 bytes .../res/drawable-xhdpi/bg_weather_two.jpg | Bin 0 -> 46240 bytes main/src/main/res/drawable-xhdpi/ic_moon.png | Bin 0 -> 3846 bytes main/src/main/res/drawable-xhdpi/ic_sun.png | Bin 0 -> 4846 bytes .../src/main/res/drawable-xhdpi/ic_switch.png | Bin 0 -> 910 bytes main/src/main/res/layout/activity_mob.xml | 163 ++++++ .../main/res/layout/activity_mob_weather.xml | 80 +++ .../main/res/layout/recycle_item_flight.xml | 439 ++++++++++++++++ main/src/main/res/values/strings.xml | 40 ++ main/src/main/res/xml/scene_weather.xml | 209 ++++++++ .../src/main/res/layout/activity_welfare.xml | 2 +- 38 files changed, 3059 insertions(+), 7 deletions(-) create mode 100644 main/src/main/java/com/heyongrui/main/adapter/DragAndSwipeAdapter.java create mode 100644 main/src/main/java/com/heyongrui/main/adapter/ExpandableAdapter.java create mode 100644 main/src/main/java/com/heyongrui/main/adapter/HomeSectionAdapter.java create mode 100644 main/src/main/java/com/heyongrui/main/adapter/HomeSectionEntity.java create mode 100644 main/src/main/java/com/heyongrui/main/dagger/ActivityContext.java create mode 100644 main/src/main/java/com/heyongrui/main/dagger/HomeComponent.java create mode 100644 main/src/main/java/com/heyongrui/main/dagger/HomeModule.java create mode 100644 main/src/main/java/com/heyongrui/main/data/api/MobApi.java create mode 100644 main/src/main/java/com/heyongrui/main/data/dto/DictionaryDto.java create mode 100644 main/src/main/java/com/heyongrui/main/data/dto/FlightDto.java create mode 100644 main/src/main/java/com/heyongrui/main/data/dto/IDCardDto.java create mode 100644 main/src/main/java/com/heyongrui/main/data/dto/IdiomDto.java create mode 100644 main/src/main/java/com/heyongrui/main/data/dto/MobResponse.java create mode 100644 main/src/main/java/com/heyongrui/main/data/dto/WeatherDto.java create mode 100644 main/src/main/java/com/heyongrui/main/data/service/MobService.java create mode 100644 main/src/main/java/com/heyongrui/main/mob/contract/MobContract.java create mode 100644 main/src/main/java/com/heyongrui/main/mob/presenter/MobPresenter.java create mode 100644 main/src/main/java/com/heyongrui/main/mob/view/BezierEvaluator.java create mode 100644 main/src/main/java/com/heyongrui/main/mob/view/MobActivity.java create mode 100644 main/src/main/java/com/heyongrui/main/mob/view/MobWeatherActivity.java create mode 100644 main/src/main/res/drawable-xhdpi/bg_weather_one.jpg create mode 100644 main/src/main/res/drawable-xhdpi/bg_weather_three.jpg create mode 100644 main/src/main/res/drawable-xhdpi/bg_weather_two.jpg create mode 100644 main/src/main/res/drawable-xhdpi/ic_moon.png create mode 100644 main/src/main/res/drawable-xhdpi/ic_sun.png create mode 100644 main/src/main/res/drawable-xhdpi/ic_switch.png create mode 100644 main/src/main/res/layout/activity_mob.xml create mode 100644 main/src/main/res/layout/activity_mob_weather.xml create mode 100644 main/src/main/res/layout/recycle_item_flight.xml create mode 100644 main/src/main/res/xml/scene_weather.xml diff --git a/base/build.gradle b/base/build.gradle index 2d49fa9..37933a5 100644 --- a/base/build.gradle +++ b/base/build.gradle @@ -105,6 +105,8 @@ dependencies { //刷新框架 api "com.scwang.smartrefresh:SmartRefreshLayout:${versions.smartRefreshLayout}" api "com.scwang.smartrefresh:SmartRefreshHeader:${versions.smartRefreshLayout}" + //lottie动画 + api "com.airbnb.android:lottie:${versions.lottie}" testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.2.0' diff --git a/base/src/main/java/com/heyongrui/base/assist/ConfigConstants.java b/base/src/main/java/com/heyongrui/base/assist/ConfigConstants.java index 7c437d5..830fd5c 100644 --- a/base/src/main/java/com/heyongrui/base/assist/ConfigConstants.java +++ b/base/src/main/java/com/heyongrui/base/assist/ConfigConstants.java @@ -19,9 +19,11 @@ public class ConfigConstants { public static final String PATH_TARGET = "target_path"; //main模块路由路径 - public static final String PATH_MAIN = "/main/activity"; - public static final String PATH_PLANET_BALL = "/main/planetBall"; - public static final String PATH_HOME_PROVIDER = "/home/main/service"; + public static final String PATH_MAIN = "/home/main"; + public static final String PATH_PLANET_BALL = "/home/planetBall"; + public static final String PATH_MOB = "/home/mob"; + public static final String PATH_WEATHER = "/home/weather"; + public static final String PATH_HOME_PROVIDER = "/home/service"; //user模块路由路径 public static final String PATH_ENCOURAGE = "/user/encourage"; public static final String PATH_KOTLIN = "/user/kotlin"; diff --git a/config.gradle b/config.gradle index b9816f4..ff2496d 100644 --- a/config.gradle +++ b/config.gradle @@ -43,5 +43,6 @@ ext { jiaozivideoplayer : '7.0.4', ahbottomnavigation: '2.3.4', banner : '2.3.16', + lottie : '3.0.7', ] } \ No newline at end of file diff --git a/main/src/main/AndroidManifest.xml b/main/src/main/AndroidManifest.xml index 32ec01d..5ce988b 100644 --- a/main/src/main/AndroidManifest.xml +++ b/main/src/main/AndroidManifest.xml @@ -8,5 +8,11 @@ + + diff --git a/main/src/main/debug/AndroidManifest.xml b/main/src/main/debug/AndroidManifest.xml index 9b3f8b1..0b734ba 100644 --- a/main/src/main/debug/AndroidManifest.xml +++ b/main/src/main/debug/AndroidManifest.xml @@ -21,6 +21,12 @@ + + diff --git a/main/src/main/java/com/heyongrui/main/HomeFragment.java b/main/src/main/java/com/heyongrui/main/HomeFragment.java index e41b99e..eb65f49 100644 --- a/main/src/main/java/com/heyongrui/main/HomeFragment.java +++ b/main/src/main/java/com/heyongrui/main/HomeFragment.java @@ -89,7 +89,8 @@ protected void initData(Bundle savedInstanceState) { } private void initPlanetBallView(PlanetBallView planetBallView, List floatingDtoList) { - int dp70 = ConvertUtils.dp2px(70); + int dp80 = ConvertUtils.dp2px(80); + int dp30 = ConvertUtils.dp2px(30); planetBallView.setAdapter(new PlanetAdapter() { @Override public int getCount() { @@ -110,7 +111,7 @@ public View getView(Context context, int position, ViewGroup parent) { iconRes = ((FloatingDto) item).getIcon_res(); } MarqueeTextView marqueeTextView = new MarqueeTextView(context); - ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(dp70, dp70); + ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(dp80, dp80); marqueeTextView.setLayoutParams(layoutParams); marqueeTextView.setBackgroundResource(R.drawable.bg_circle_shadow); marqueeTextView.setGravity(Gravity.CENTER); @@ -121,7 +122,7 @@ public View getView(Context context, int position, ViewGroup parent) { marqueeTextView.setTextColor(Color.WHITE); marqueeTextView.setText(TextUtils.isEmpty(name) ? "" : name); Drawable drawable = ContextCompat.getDrawable(context, iconRes); - drawable.setBounds(0, 0, 80, 80 * drawable.getIntrinsicHeight() / drawable.getIntrinsicWidth()); + drawable.setBounds(0, 0, dp30, dp30 * drawable.getIntrinsicHeight() / drawable.getIntrinsicWidth()); marqueeTextView.setCompoundDrawables(null, drawable, null, null); marqueeTextView.setFocusable(true); marqueeTextView.post(() -> marqueeTextView.onWindowFocusChanged(true)); @@ -130,16 +131,22 @@ public View getView(Context context, int position, ViewGroup parent) { int type = ((FloatingDto) item).getType(); switch (type) { case 1://分词解析 + ARouter.getInstance().build(ConfigConstants.PATH_MOB).withInt("mobType", 1).navigation(); break; case 2://航班查询 + ARouter.getInstance().build(ConfigConstants.PATH_MOB).withInt("mobType", 2).navigation(); break; case 3://身份证查询 + ARouter.getInstance().build(ConfigConstants.PATH_MOB).withInt("mobType", 3).navigation(); break; case 4://天气预报 + ARouter.getInstance().build(ConfigConstants.PATH_WEATHER).navigation(); break; case 5://新华字典查询 + ARouter.getInstance().build(ConfigConstants.PATH_MOB).withInt("mobType", 5).navigation(); break; case 6://成语查询 + ARouter.getInstance().build(ConfigConstants.PATH_MOB).withInt("mobType", 6).navigation(); break; case 7://动作布局动画 ARouter.getInstance().build(ConfigConstants.PATH_KOTLIN).navigation(); diff --git a/main/src/main/java/com/heyongrui/main/adapter/DragAndSwipeAdapter.java b/main/src/main/java/com/heyongrui/main/adapter/DragAndSwipeAdapter.java new file mode 100644 index 0000000..9b2287a --- /dev/null +++ b/main/src/main/java/com/heyongrui/main/adapter/DragAndSwipeAdapter.java @@ -0,0 +1,31 @@ +package com.heyongrui.main.adapter; + +import com.chad.library.adapter.base.BaseItemDraggableAdapter; +import com.chad.library.adapter.base.BaseViewHolder; + +import java.util.List; + +/** + * Created by lambert on 2018/11/13. + * 拖拽、滑动适配器 + */ +public class DragAndSwipeAdapter extends BaseItemDraggableAdapter { + private int mItemType; + + public DragAndSwipeAdapter(List data, int itemType) { + super(data); + mItemType = itemType; + } + + public DragAndSwipeAdapter(int layoutResId, int itemType, List data) { + super(layoutResId, data); + mItemType = itemType; + } + + @Override + protected void convert(BaseViewHolder helper, Object item) { + switch (mItemType) { + + } + } +} diff --git a/main/src/main/java/com/heyongrui/main/adapter/ExpandableAdapter.java b/main/src/main/java/com/heyongrui/main/adapter/ExpandableAdapter.java new file mode 100644 index 0000000..0619f6e --- /dev/null +++ b/main/src/main/java/com/heyongrui/main/adapter/ExpandableAdapter.java @@ -0,0 +1,32 @@ +package com.heyongrui.main.adapter; + +import androidx.core.content.ContextCompat; + +import com.chad.library.adapter.base.BaseMultiItemQuickAdapter; +import com.chad.library.adapter.base.BaseViewHolder; +import com.chad.library.adapter.base.entity.MultiItemEntity; +import com.heyongrui.base.utils.UiUtil; +import com.heyongrui.main.R; + +import java.util.List; + +/** + * Created by lambert on 2018/8/29. + * 可折叠分组适配器 + */ +public class ExpandableAdapter extends BaseMultiItemQuickAdapter { + + public static final int HOTEL_ROOM_TYPE = 10004; + + public ExpandableAdapter(List data) { + super(data); +// addItemType(HOTEL_ROOM_TYPE, R.layout.adapter_item_hotel_room_type); + } + + @Override + protected void convert(BaseViewHolder helper, MultiItemEntity item) { + UiUtil.setOnclickFeedBack(mContext, ContextCompat.getColor(mContext, R.color.background), ContextCompat.getColor(mContext, R.color.gray), helper.itemView); + switch (helper.getItemViewType()) { + } + } +} diff --git a/main/src/main/java/com/heyongrui/main/adapter/HomeSectionAdapter.java b/main/src/main/java/com/heyongrui/main/adapter/HomeSectionAdapter.java new file mode 100644 index 0000000..c57d9b6 --- /dev/null +++ b/main/src/main/java/com/heyongrui/main/adapter/HomeSectionAdapter.java @@ -0,0 +1,89 @@ +package com.heyongrui.main.adapter; + +import android.text.TextUtils; + +import com.chad.library.adapter.base.BaseSectionMultiItemQuickAdapter; +import com.chad.library.adapter.base.BaseViewHolder; +import com.heyongrui.main.R; +import com.heyongrui.main.data.dto.FlightDto; + +import java.util.List; + + +/** + * lambert + * 2019/6/25 18:17 + */ +public class HomeSectionAdapter extends BaseSectionMultiItemQuickAdapter { + + public HomeSectionAdapter(List data) { + this(0, data); + } + + public HomeSectionAdapter(int sectionHeadResId, List data) { + super(sectionHeadResId, data); + addItemType(HomeSectionEntity.FLIGHT, R.layout.recycle_item_flight); + } + + @Override + protected void convertHead(BaseViewHolder helper, HomeSectionEntity item) { +// switch (item.getItemType()) { +// case HomeSectionEntity.FLIGHT: +// TextView tvHeadSection = helper.getView(android.R.id.text1); +// if (null != tvHeadSection) { +// tvHeadSection.setText(TextUtils.isEmpty(item.header) ? "" : item.header); +// } +// break; +// } + } + + @Override + protected void convert(BaseViewHolder helper, HomeSectionEntity item) { + switch (helper.getItemViewType()) { + case HomeSectionEntity.FLIGHT: { + String flightCompany = "", flightNumber = "", flightRate = "", flightTime = "", fromAirport = "", + fromAirportCode = "", fromCity = "", fromCityCode = "", fromTerminal = "", planTime = "", + planArriveTime = "", toAirport = "", toAirportCode = "", toCity = "", toCityCode = "", + toTerminal = "", flightCycle = ""; + FlightDto flightDto = item.getFlightDto(); + if (null != flightDto) { + flightCompany = flightDto.getAirLines(); + flightNumber = flightDto.getFlightNo(); + flightRate = flightDto.getFlightRate(); + flightTime = flightDto.getFlightTime(); + fromAirport = flightDto.getFrom(); + fromAirportCode = flightDto.getFromAirportCode(); + fromCity = flightDto.getFromCityName(); + fromCityCode = flightDto.getFromCityCode(); + fromTerminal = flightDto.getFromTerminal(); + planTime = flightDto.getPlanTime(); + planArriveTime = flightDto.getPlanArriveTime(); + toAirport = flightDto.getTo(); + toAirportCode = flightDto.getToAirportCode(); + toCity = flightDto.getToCityName(); + toCityCode = flightDto.getToCityCode(); + toTerminal = flightDto.getToTerminal(); + flightCycle = flightDto.getWeek(); + } + helper.setText(R.id.tv_company, TextUtils.isEmpty(flightCompany) ? "" : flightCompany); + helper.setText(R.id.tv_flight_number, TextUtils.isEmpty(flightNumber) ? "" : flightNumber); + helper.setText(R.id.tv_flight_rate, TextUtils.isEmpty(flightRate) ? "" : flightRate); + helper.setText(R.id.tv_flight_time, TextUtils.isEmpty(flightTime) ? "" : flightTime); + helper.setText(R.id.tv_from_airport, TextUtils.isEmpty(fromAirport) ? "" : fromAirport); + helper.setText(R.id.tv_from_airport_code, TextUtils.isEmpty(fromAirportCode) ? "" : fromAirportCode); + helper.setText(R.id.tv_from_city_name, TextUtils.isEmpty(fromCity) ? "" : fromCity); + helper.setText(R.id.tv_from_city_code, TextUtils.isEmpty(fromCityCode) ? "" : fromCityCode); + helper.setText(R.id.tv_from_terminal, TextUtils.isEmpty(fromTerminal) ? "" : fromTerminal); + helper.setText(R.id.tv_plan_time, TextUtils.isEmpty(planTime) ? "" : planTime); + helper.setText(R.id.tv_plan_arrive_time, TextUtils.isEmpty(planArriveTime) ? "" : planArriveTime); + helper.setText(R.id.tv_to_airport, TextUtils.isEmpty(toAirport) ? "" : toAirport); + helper.setText(R.id.tv_to_airport_code, TextUtils.isEmpty(toAirportCode) ? "" : toAirportCode); + helper.setText(R.id.tv_to_city_name, TextUtils.isEmpty(toCity) ? "" : toCity); + helper.setText(R.id.tv_to_city_code, TextUtils.isEmpty(toCityCode) ? "" : toCityCode); + helper.setText(R.id.tv_to_terminal, TextUtils.isEmpty(toTerminal) ? "" : toTerminal); + helper.setText(R.id.tv_flight_cycle, TextUtils.isEmpty(flightCycle) ? "" : flightCycle); + } + break; + } + } +} diff --git a/main/src/main/java/com/heyongrui/main/adapter/HomeSectionEntity.java b/main/src/main/java/com/heyongrui/main/adapter/HomeSectionEntity.java new file mode 100644 index 0000000..06beb91 --- /dev/null +++ b/main/src/main/java/com/heyongrui/main/adapter/HomeSectionEntity.java @@ -0,0 +1,80 @@ +package com.heyongrui.main.adapter; + +import com.chad.library.adapter.base.entity.MultiItemEntity; +import com.chad.library.adapter.base.entity.SectionMultiEntity; +import com.heyongrui.main.data.dto.FlightDto; + +import java.util.List; + +/** + * lambert + * 2019/6/25 18:13 + */ +public class HomeSectionEntity extends SectionMultiEntity implements MultiItemEntity { + + public static final int FLIGHT = 100; + + private int itemType; + private int spanSize; + + private Object object; + private FlightDto flightDto; + + public HomeSectionEntity(boolean isHeader, String header, boolean isShow) { + super(isHeader, header); + } + + public HomeSectionEntity(int itemType, Object object) { + this(itemType, 1, object); + } + + public HomeSectionEntity(int itemType, int spanSize, Object object) { + super(object); + this.itemType = itemType; + this.spanSize = spanSize; + this.object = object; + if (object != null) { + if (object instanceof List && ((List) object).size() > 0) { + Object o = ((List) object).get(0); +// if (o instanceof BannerDto) { +// this.bannerDtoList = (List) object; +// } + } else if (object instanceof FlightDto) { + this.flightDto = (FlightDto) object; + } + } + } + + @Override + public int getItemType() { + return itemType; + } + + public void setItemType(int itemType) { + this.itemType = itemType; + } + + public int getSpanSize() { + return spanSize; + } + + public void setSpanSize(int spanSize) { + this.spanSize = spanSize; + } + + public Object getObject() { + return object; + } + + public void setObject(Object object) { + this.object = object; + } + + public FlightDto getFlightDto() { + return flightDto; + } + + public void setFlightDto(FlightDto flightDto) { + this.flightDto = flightDto; + } +} diff --git a/main/src/main/java/com/heyongrui/main/dagger/ActivityContext.java b/main/src/main/java/com/heyongrui/main/dagger/ActivityContext.java new file mode 100644 index 0000000..4a37bf6 --- /dev/null +++ b/main/src/main/java/com/heyongrui/main/dagger/ActivityContext.java @@ -0,0 +1,12 @@ +package com.heyongrui.main.dagger; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +import javax.inject.Qualifier; + +@Qualifier +@Retention(RetentionPolicy.RUNTIME) +public @interface ActivityContext { + +} \ No newline at end of file diff --git a/main/src/main/java/com/heyongrui/main/dagger/HomeComponent.java b/main/src/main/java/com/heyongrui/main/dagger/HomeComponent.java new file mode 100644 index 0000000..07f40c2 --- /dev/null +++ b/main/src/main/java/com/heyongrui/main/dagger/HomeComponent.java @@ -0,0 +1,27 @@ +package com.heyongrui.main.dagger; + +import android.app.Activity; + +import androidx.fragment.app.Fragment; + +import com.heyongrui.base.dagger.AppComponent; +import com.heyongrui.base.dagger.PerActivity; +import com.heyongrui.main.mob.presenter.MobPresenter; + +import dagger.Component; + +/** + * 2019/8/26 + * lambert + * 此Component依赖AppComponent,由于AppComponent使用了@Singleton,此处只能使用自定义@Scope(@PerActivity) + */ + +@PerActivity +@Component(dependencies = AppComponent.class, modules = {HomeModule.class}) +public interface HomeComponent { + Activity getActivity(); + + Fragment getFragment(); + + void inject(MobPresenter mobPresenter); +} diff --git a/main/src/main/java/com/heyongrui/main/dagger/HomeModule.java b/main/src/main/java/com/heyongrui/main/dagger/HomeModule.java new file mode 100644 index 0000000..e5ad892 --- /dev/null +++ b/main/src/main/java/com/heyongrui/main/dagger/HomeModule.java @@ -0,0 +1,62 @@ +package com.heyongrui.main.dagger; + + +import android.app.Activity; +import android.content.Context; + +import androidx.fragment.app.Fragment; + +import com.heyongrui.base.dagger.PerActivity; +import com.heyongrui.main.data.service.MobService; + +import dagger.Module; +import dagger.Provides; + +@Module +public class HomeModule { + + private Activity mActivity; + private Fragment mFragment; + + public HomeModule() { + } + + public HomeModule(Activity activity) { + mActivity = activity; + } + + public HomeModule(Fragment fragment) { + this.mFragment = fragment; + } + + @Provides + Activity provideActivity() { + return mActivity; + } + + @Provides + Fragment provideFragment() { + return mFragment; + } + + /* + * @ActivityContext别名,通过在@Inject时加入这个自定义注解达到返回相同provider类型但是数据不同(eg:User() User(int age)) + */ + @Provides + @ActivityContext + Context providesContext() { + Context context = null; + if (null != mActivity) { + context = mActivity; + } else if (null != mFragment) { + context = mFragment.getContext(); + } + return context; + } + + @Provides + @PerActivity + MobService provideMobService() { + return new MobService(); + } +} diff --git a/main/src/main/java/com/heyongrui/main/data/api/MobApi.java b/main/src/main/java/com/heyongrui/main/data/api/MobApi.java new file mode 100644 index 0000000..aff503c --- /dev/null +++ b/main/src/main/java/com/heyongrui/main/data/api/MobApi.java @@ -0,0 +1,76 @@ +package com.heyongrui.main.data.api; + +import com.heyongrui.main.data.dto.DictionaryDto; +import com.heyongrui.main.data.dto.FlightDto; +import com.heyongrui.main.data.dto.IDCardDto; +import com.heyongrui.main.data.dto.IdiomDto; +import com.heyongrui.main.data.dto.MobResponse; +import com.heyongrui.main.data.dto.WeatherDto; + +import java.util.List; + +import io.reactivex.Observable; +import retrofit2.http.GET; +import retrofit2.http.Query; + +public interface MobApi { + + /** + * 分词解析 + */ + @GET("word/analyzer") + Observable>> participleParse(@Query("key") String key, + @Query("duid") String duid, + @Query("type") String type, + @Query("text") String base64Str); + + /** + * 成语查询 + */ + @GET("appstore/idiom/query") + Observable> idiomQuery(@Query("key") String key, + @Query("duid") String duid, + @Query("name") String idiomStr); + + /** + * 新华字典查询 + */ + @GET("appstore/dictionary/query") + Observable> dictionaryQuery(@Query("key") String key, + @Query("duid") String duid, + @Query("name") String word); + + /** + * 身份证信息查询 + */ + @GET("idcard/query") + Observable> idCardQuery(@Query("key") String key, + @Query("duid") String duid, + @Query("cardno") String cardNo); + + /** + * 根据起落城市名或者机场代码查询航班信息(start=北京/BJS) + */ + @GET("flight/line/query") + Observable>> flightQuery(@Query("key") String key, + @Query("duid") String duid, + @Query("start") String start, + @Query("end") String end); + + /** + * 根据航班号查询航班信息(name=CZ9902) + */ + @GET("flight/no/query") + Observable>> flightNoQuery(@Query("key") String key, + @Query("duid") String duid, + @Query("name") String flightNo); + + /** + * 根据ip地址查询天气 + */ + @GET("v1/weather/ip") + Observable>> weatherQueryByIp(@Query("key") String key, + @Query("duid") String duid, + @Query("ip") String ip); + +} diff --git a/main/src/main/java/com/heyongrui/main/data/dto/DictionaryDto.java b/main/src/main/java/com/heyongrui/main/data/dto/DictionaryDto.java new file mode 100644 index 0000000..749edd9 --- /dev/null +++ b/main/src/main/java/com/heyongrui/main/data/dto/DictionaryDto.java @@ -0,0 +1,87 @@ +package com.heyongrui.main.data.dto; + +public class DictionaryDto { + /** + * bihua : 30 + * bihuaWithBushou : 26 + * brief : 爨;cuàn;烧火做饭:分居各爨。;灶:“客传萧寒爨不烟。”
{ + private int retCode;//200 + private String msg;//success + private T result; + + public int getRetCode() { + return retCode; + } + + public void setRetCode(int retCode) { + this.retCode = retCode; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public T getResult() { + return result; + } + + public void setResult(T result) { + this.result = result; + } +} diff --git a/main/src/main/java/com/heyongrui/main/data/dto/WeatherDto.java b/main/src/main/java/com/heyongrui/main/data/dto/WeatherDto.java new file mode 100644 index 0000000..cb7dafe --- /dev/null +++ b/main/src/main/java/com/heyongrui/main/data/dto/WeatherDto.java @@ -0,0 +1,473 @@ +package com.heyongrui.main.data.dto; + +import java.util.List; + +public class WeatherDto { + /** + * airCondition : 优 + * airQuality : {"aqi":31,"city":"珠海","district":"珠海","fetureData":[{"aqi":50,"date":"2019-09-12","quality":"优"},{"aqi":49,"date":"2019-09-13","quality":"优"},{"aqi":49,"date":"2019-09-14","quality":"优"},{"aqi":51,"date":"2019-09-15","quality":"良"},{"aqi":49,"date":"2019-09-16","quality":"优"},{"aqi":52,"date":"2019-09-17","quality":"良"}],"hourData":[{"aqi":31,"dateTime":"2019-09-11 15:00:00"},{"aqi":30,"dateTime":"2019-09-11 14:00:00"},{"aqi":27,"dateTime":"2019-09-11 13:00:00"},{"aqi":22,"dateTime":"2019-09-11 12:00:00"},{"aqi":18,"dateTime":"2019-09-11 11:00:00"},{"aqi":16,"dateTime":"2019-09-11 10:00:00"},{"aqi":15,"dateTime":"2019-09-11 09:00:00"},{"aqi":15,"dateTime":"2019-09-11 08:00:00"},{"aqi":15,"dateTime":"2019-09-11 07:00:00"},{"aqi":14,"dateTime":"2019-09-11 06:00:00"},{"aqi":14,"dateTime":"2019-09-11 05:00:00"},{"aqi":17,"dateTime":"2019-09-11 04:00:00"},{"aqi":17,"dateTime":"2019-09-11 03:00:00"},{"aqi":17,"dateTime":"2019-09-11 02:00:00"},{"aqi":19,"dateTime":"2019-09-11 01:00:00"},{"aqi":21,"dateTime":"2019-09-11 00:00:00"},{"aqi":18,"dateTime":"2019-09-10 23:00:00"},{"aqi":17,"dateTime":"2019-09-10 22:00:00"},{"aqi":17,"dateTime":"2019-09-10 21:00:00"},{"aqi":17,"dateTime":"2019-09-10 20:00:00"},{"aqi":19,"dateTime":"2019-09-10 19:00:00"},{"aqi":20,"dateTime":"2019-09-10 18:00:00"},{"aqi":24,"dateTime":"2019-09-10 17:00:00"}],"no2":8,"pm10":20,"pm25":13,"province":"广东","quality":"优","so2":2,"updateTime":"2019-09-11 15:00:00"} + * city : 珠海 + * coldIndex : + * date : 2019-09-11 + * distrct : 珠海 + * dressingIndex : + * exerciseIndex : + * future : [{"date":"2019-09-11","dayTime":"少云","night":"雷雨","temperature":"30°C / 27°C","week":"今天","wind":"东风 3级"},{"date":"2019-09-12","dayTime":"局部多云","night":"零散雷雨","temperature":"31°C / 28°C","week":"星期四","wind":"东北偏东风 2级"},{"date":"2019-09-13","dayTime":"零散雷雨","night":"雷雨","temperature":"31°C / 27°C","week":"星期五","wind":"东风 2级"},{"date":"2019-09-14","dayTime":"局部雷雨","night":"雷雨","temperature":"31°C / 27°C","week":"星期六","wind":"东北偏东风 2级"},{"date":"2019-09-15","dayTime":"零散雷雨","night":"零散雷雨","temperature":"30°C / 27°C","week":"星期日","wind":"东风 2级"},{"date":"2019-09-16","dayTime":"零散雷雨","night":"零散雷雨","temperature":"30°C / 27°C","week":"星期一","wind":"东北偏东风 2级"},{"date":"2019-09-17","dayTime":"局部多云","night":"零散雷雨","temperature":"31°C / 27°C","week":"星期二","wind":"东北风 3级"},{"date":"2019-09-18","dayTime":"零散雷雨","night":"雷雨","temperature":"30°C / 27°C","week":"星期三","wind":"东北风 3级"},{"date":"2019-09-19","dayTime":"雷雨","night":"雷雨","temperature":"29°C / 26°C","week":"星期四","wind":"东北偏东风 3级"}] + * humidity : 湿度:67% + * pollutionIndex : 31 + * province : 广东 + * sunrise : 06:11 + * sunset : 18:33 + * temperature : 31℃ + * time : 15:53 + * updateTime : 20190911161345 + * washIndex : + * weather : 多云 + * week : 周三 + * wind : 东南风2级 + */ + + private String airCondition; + private AirQualityBean airQuality; + private String city; + private String coldIndex; + private String date; + private String distrct; + private String dressingIndex; + private String exerciseIndex; + private String humidity; + private String pollutionIndex; + private String province; + private String sunrise; + private String sunset; + private String temperature; + private String time; + private String updateTime; + private String washIndex; + private String weather; + private String week; + private String wind; + private List future; + + public String getAirCondition() { + return airCondition; + } + + public void setAirCondition(String airCondition) { + this.airCondition = airCondition; + } + + public AirQualityBean getAirQuality() { + return airQuality; + } + + public void setAirQuality(AirQualityBean airQuality) { + this.airQuality = airQuality; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getColdIndex() { + return coldIndex; + } + + public void setColdIndex(String coldIndex) { + this.coldIndex = coldIndex; + } + + public String getDate() { + return date; + } + + public void setDate(String date) { + this.date = date; + } + + public String getDistrct() { + return distrct; + } + + public void setDistrct(String distrct) { + this.distrct = distrct; + } + + public String getDressingIndex() { + return dressingIndex; + } + + public void setDressingIndex(String dressingIndex) { + this.dressingIndex = dressingIndex; + } + + public String getExerciseIndex() { + return exerciseIndex; + } + + public void setExerciseIndex(String exerciseIndex) { + this.exerciseIndex = exerciseIndex; + } + + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + public String getPollutionIndex() { + return pollutionIndex; + } + + public void setPollutionIndex(String pollutionIndex) { + this.pollutionIndex = pollutionIndex; + } + + public String getProvince() { + return province; + } + + public void setProvince(String province) { + this.province = province; + } + + public String getSunrise() { + return sunrise; + } + + public void setSunrise(String sunrise) { + this.sunrise = sunrise; + } + + public String getSunset() { + return sunset; + } + + public void setSunset(String sunset) { + this.sunset = sunset; + } + + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getWashIndex() { + return washIndex; + } + + public void setWashIndex(String washIndex) { + this.washIndex = washIndex; + } + + public String getWeather() { + return weather; + } + + public void setWeather(String weather) { + this.weather = weather; + } + + public String getWeek() { + return week; + } + + public void setWeek(String week) { + this.week = week; + } + + public String getWind() { + return wind; + } + + public void setWind(String wind) { + this.wind = wind; + } + + public List getFuture() { + return future; + } + + public void setFuture(List future) { + this.future = future; + } + + public static class AirQualityBean { + /** + * aqi : 31 + * city : 珠海 + * district : 珠海 + * fetureData : [{"aqi":50,"date":"2019-09-12","quality":"优"},{"aqi":49,"date":"2019-09-13","quality":"优"},{"aqi":49,"date":"2019-09-14","quality":"优"},{"aqi":51,"date":"2019-09-15","quality":"良"},{"aqi":49,"date":"2019-09-16","quality":"优"},{"aqi":52,"date":"2019-09-17","quality":"良"}] + * hourData : [{"aqi":31,"dateTime":"2019-09-11 15:00:00"},{"aqi":30,"dateTime":"2019-09-11 14:00:00"},{"aqi":27,"dateTime":"2019-09-11 13:00:00"},{"aqi":22,"dateTime":"2019-09-11 12:00:00"},{"aqi":18,"dateTime":"2019-09-11 11:00:00"},{"aqi":16,"dateTime":"2019-09-11 10:00:00"},{"aqi":15,"dateTime":"2019-09-11 09:00:00"},{"aqi":15,"dateTime":"2019-09-11 08:00:00"},{"aqi":15,"dateTime":"2019-09-11 07:00:00"},{"aqi":14,"dateTime":"2019-09-11 06:00:00"},{"aqi":14,"dateTime":"2019-09-11 05:00:00"},{"aqi":17,"dateTime":"2019-09-11 04:00:00"},{"aqi":17,"dateTime":"2019-09-11 03:00:00"},{"aqi":17,"dateTime":"2019-09-11 02:00:00"},{"aqi":19,"dateTime":"2019-09-11 01:00:00"},{"aqi":21,"dateTime":"2019-09-11 00:00:00"},{"aqi":18,"dateTime":"2019-09-10 23:00:00"},{"aqi":17,"dateTime":"2019-09-10 22:00:00"},{"aqi":17,"dateTime":"2019-09-10 21:00:00"},{"aqi":17,"dateTime":"2019-09-10 20:00:00"},{"aqi":19,"dateTime":"2019-09-10 19:00:00"},{"aqi":20,"dateTime":"2019-09-10 18:00:00"},{"aqi":24,"dateTime":"2019-09-10 17:00:00"}] + * no2 : 8 + * pm10 : 20 + * pm25 : 13 + * province : 广东 + * quality : 优 + * so2 : 2 + * updateTime : 2019-09-11 15:00:00 + */ + + private int aqi; + private String city; + private String district; + private int no2; + private int pm10; + private int pm25; + private String province; + private String quality; + private int so2; + private String updateTime; + private List fetureData; + private List hourData; + + public int getAqi() { + return aqi; + } + + public void setAqi(int aqi) { + this.aqi = aqi; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getDistrict() { + return district; + } + + public void setDistrict(String district) { + this.district = district; + } + + public int getNo2() { + return no2; + } + + public void setNo2(int no2) { + this.no2 = no2; + } + + public int getPm10() { + return pm10; + } + + public void setPm10(int pm10) { + this.pm10 = pm10; + } + + public int getPm25() { + return pm25; + } + + public void setPm25(int pm25) { + this.pm25 = pm25; + } + + public String getProvince() { + return province; + } + + public void setProvince(String province) { + this.province = province; + } + + public String getQuality() { + return quality; + } + + public void setQuality(String quality) { + this.quality = quality; + } + + public int getSo2() { + return so2; + } + + public void setSo2(int so2) { + this.so2 = so2; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public List getFetureData() { + return fetureData; + } + + public void setFetureData(List fetureData) { + this.fetureData = fetureData; + } + + public List getHourData() { + return hourData; + } + + public void setHourData(List hourData) { + this.hourData = hourData; + } + + public static class FetureDataBean { + /** + * aqi : 50 + * date : 2019-09-12 + * quality : 优 + */ + + private int aqi; + private String date; + private String quality; + + public int getAqi() { + return aqi; + } + + public void setAqi(int aqi) { + this.aqi = aqi; + } + + public String getDate() { + return date; + } + + public void setDate(String date) { + this.date = date; + } + + public String getQuality() { + return quality; + } + + public void setQuality(String quality) { + this.quality = quality; + } + } + + public static class HourDataBean { + /** + * aqi : 31 + * dateTime : 2019-09-11 15:00:00 + */ + + private int aqi; + private String dateTime; + + public int getAqi() { + return aqi; + } + + public void setAqi(int aqi) { + this.aqi = aqi; + } + + public String getDateTime() { + return dateTime; + } + + public void setDateTime(String dateTime) { + this.dateTime = dateTime; + } + } + } + + public static class FutureBean { + /** + * date : 2019-09-11 + * dayTime : 少云 + * night : 雷雨 + * temperature : 30°C / 27°C + * week : 今天 + * wind : 东风 3级 + */ + + private String date; + private String dayTime; + private String night; + private String temperature; + private String week; + private String wind; + + public String getDate() { + return date; + } + + public void setDate(String date) { + this.date = date; + } + + public String getDayTime() { + return dayTime; + } + + public void setDayTime(String dayTime) { + this.dayTime = dayTime; + } + + public String getNight() { + return night; + } + + public void setNight(String night) { + this.night = night; + } + + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + public String getWeek() { + return week; + } + + public void setWeek(String week) { + this.week = week; + } + + public String getWind() { + return wind; + } + + public void setWind(String wind) { + this.wind = wind; + } + } +} diff --git a/main/src/main/java/com/heyongrui/main/data/service/MobService.java b/main/src/main/java/com/heyongrui/main/data/service/MobService.java new file mode 100644 index 0000000..c20f688 --- /dev/null +++ b/main/src/main/java/com/heyongrui/main/data/service/MobService.java @@ -0,0 +1,93 @@ +package com.heyongrui.main.data.service; + +import android.util.Base64; + +import com.heyongrui.main.data.api.MobApi; +import com.heyongrui.main.data.dto.DictionaryDto; +import com.heyongrui.main.data.dto.FlightDto; +import com.heyongrui.main.data.dto.IDCardDto; +import com.heyongrui.main.data.dto.IdiomDto; +import com.heyongrui.main.data.dto.MobResponse; +import com.heyongrui.main.data.dto.WeatherDto; +import com.heyongrui.network.configure.RxHelper; +import com.heyongrui.network.service.ApiService; + +import java.io.UnsupportedEncodingException; +import java.util.List; + +import io.reactivex.Observable; + +public class MobService { + + /** + * 分词解析 + */ + public Observable>> participleParse(String originStr) { + String base64Str; + try { + byte[] contentByte = originStr.getBytes("UTF-8"); + base64Str = Base64.encodeToString(contentByte, Base64.DEFAULT); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + base64Str = ""; + } + return ApiService.createApi(MobApi.class, "http://apicloud.mob.com/") + .participleParse("moba6b6c6d6", "43275ff45b034bffaf6b9941a216fe6dbae31dc9", "common", base64Str) + .compose(RxHelper.rxSchedulerHelper()); + } + + /** + * 成语查询 + */ + public Observable> idiomQuery(String idiomStr) { + return ApiService.createApi(MobApi.class, "http://apicloud.mob.com/") + .idiomQuery("moba6b6c6d6", "43275ff45b034bffaf6b9941a216fe6dbae31dc9", idiomStr) + .compose(RxHelper.rxSchedulerHelper()); + } + + /** + * 新华字典查询 + */ + public Observable> dictionaryQuery(String word) { + return ApiService.createApi(MobApi.class, "http://apicloud.mob.com/") + .dictionaryQuery("moba6b6c6d6", "43275ff45b034bffaf6b9941a216fe6dbae31dc9", word) + .compose(RxHelper.rxSchedulerHelper()); + } + + /** + * 身份证信息查询 + */ + public Observable> idCardQuery(String word) { + return ApiService.createApi(MobApi.class, "http://apicloud.mob.com/") + .idCardQuery("moba6b6c6d6", "43275ff45b034bffaf6b9941a216fe6dbae31dc9", word) + .compose(RxHelper.rxSchedulerHelper()); + } + + /** + * 根据起落城市名或者机场代码查询航班信息(start=北京/BJS) + */ + public Observable>> flightQuery(String start, String end) { + return ApiService.createApi(MobApi.class, "http://apicloud.mob.com/") + .flightQuery("moba6b6c6d6", "43275ff45b034bffaf6b9941a216fe6dbae31dc9", start, end) + .compose(RxHelper.rxSchedulerHelper()); + } + + /** + * 根据航班号查询航班信息(name=CZ9902) + */ + public Observable>> flightNoQuery(String flightNo) { + return ApiService.createApi(MobApi.class, "http://apicloud.mob.com/") + .flightNoQuery("moba6b6c6d6", "43275ff45b034bffaf6b9941a216fe6dbae31dc9", flightNo) + .compose(RxHelper.rxSchedulerHelper()); + } + + /** + * 根据ip地址查询天气 + */ + public Observable>> weatherQueryByIp(String ip) { + return ApiService.createApi(MobApi.class, "http://apicloud.mob.com/") + .weatherQueryByIp("moba6b6c6d6", "43275ff45b034bffaf6b9941a216fe6dbae31dc9", ip) + .compose(RxHelper.rxSchedulerHelper()); + } + +} diff --git a/main/src/main/java/com/heyongrui/main/mob/contract/MobContract.java b/main/src/main/java/com/heyongrui/main/mob/contract/MobContract.java new file mode 100644 index 0000000..719575d --- /dev/null +++ b/main/src/main/java/com/heyongrui/main/mob/contract/MobContract.java @@ -0,0 +1,47 @@ +package com.heyongrui.main.mob.contract; + +import androidx.recyclerview.widget.RecyclerView; + +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.heyongrui.base.base.BasePresenter; +import com.heyongrui.base.base.BaseView; +import com.heyongrui.main.adapter.HomeSectionAdapter; +import com.heyongrui.main.data.dto.DictionaryDto; +import com.heyongrui.main.data.dto.FlightDto; +import com.heyongrui.main.data.dto.IDCardDto; +import com.heyongrui.main.data.dto.IdiomDto; + +import java.util.List; + +public interface MobContract { + + interface View extends BaseView { + void flightInfoQuerySuccess(List flightDtoList); + + void idCardQuerySuccess(IDCardDto idCardDto); + + void dictionaryQuerySuccess(DictionaryDto dictionaryDto); + + void idiomQuerySuccess(IdiomDto idiomDto); + + void participleParseSuccess(List stringList); + } + + abstract class Presenter extends BasePresenter { + + public abstract void setBorderBg(android.view.View... views); + + public abstract HomeSectionAdapter initRecyclerView(RecyclerView recyclerView, BaseQuickAdapter.OnItemClickListener listener); + + public abstract void flightInfoQuery(String start, String end, String flightNo); + + public abstract void idCardQuery(String word); + + public abstract void dictionaryQuery(String word); + + public abstract void idiomQuery(String idiomStr); + + public abstract void participleParse(String originStr); + + } +} diff --git a/main/src/main/java/com/heyongrui/main/mob/presenter/MobPresenter.java b/main/src/main/java/com/heyongrui/main/mob/presenter/MobPresenter.java new file mode 100644 index 0000000..f2bbf4b --- /dev/null +++ b/main/src/main/java/com/heyongrui/main/mob/presenter/MobPresenter.java @@ -0,0 +1,227 @@ +package com.heyongrui.main.mob.presenter; + +import android.graphics.drawable.ShapeDrawable; +import android.text.TextUtils; +import android.view.View; + +import androidx.core.content.ContextCompat; +import androidx.core.view.ViewCompat; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.blankj.utilcode.util.ToastUtils; +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.heyongrui.base.app.BaseApplication; +import com.heyongrui.base.utils.DrawableUtil; +import com.heyongrui.main.R; +import com.heyongrui.main.adapter.HomeSectionAdapter; +import com.heyongrui.main.adapter.HomeSectionEntity; +import com.heyongrui.main.dagger.DaggerHomeComponent; +import com.heyongrui.main.dagger.HomeModule; +import com.heyongrui.main.data.dto.DictionaryDto; +import com.heyongrui.main.data.dto.FlightDto; +import com.heyongrui.main.data.dto.IDCardDto; +import com.heyongrui.main.data.dto.IdiomDto; +import com.heyongrui.main.data.dto.MobResponse; +import com.heyongrui.main.data.service.MobService; +import com.heyongrui.main.mob.contract.MobContract; +import com.heyongrui.network.configure.ResponseDisposable; + +import java.util.ArrayList; +import java.util.List; + +import javax.inject.Inject; + +public class MobPresenter extends MobContract.Presenter { + + @Inject + MobService mMobService; + + public MobPresenter() { + DaggerHomeComponent.builder() + .appComponent(BaseApplication.getAppComponent()) + .homeModule(new HomeModule()) + .build().inject(this); + } + + + @Override + public void setBorderBg(View... views) { + for (View view : views) { + ShapeDrawable borderEnableBg = new DrawableUtil.DrawableBuilder(mContext).setRingOutRadius(10) + .setRingInnerRadius(8).setRingSpaceOutAndInner(2) + .setColor(ContextCompat.getColor(mContext, R.color.colorPrimaryDark)).createRingDrawable(); + ViewCompat.setBackground(view, borderEnableBg); + } + } + + @Override + public HomeSectionAdapter initRecyclerView(RecyclerView recyclerView, BaseQuickAdapter.OnItemClickListener listener) { + List data = new ArrayList<>(); + HomeSectionAdapter moduleSectionAdapter = new HomeSectionAdapter(data); + recyclerView.setLayoutManager(new LinearLayoutManager(mContext)); + moduleSectionAdapter.bindToRecyclerView(recyclerView); +// int dp10 = ConvertUtils.dp2px(10); +// recyclerView.addItemDecoration(new RecycleViewItemDecoration(mContext)); +// moduleSectionAdapter.setSpanSizeLookup((gridLayoutManager, position) -> data.get(position).getSpanSize()); + if (null != listener) { + moduleSectionAdapter.setOnItemClickListener(listener); + } + return moduleSectionAdapter; + } + + @Override + public void flightInfoQuery(String start, String end, String flightNo) { + if (TextUtils.isEmpty(flightNo)) {//如果航班号为空,执行根据起落城市名或者机场代码查询航班信息 + mRxManager.add(mMobService.flightQuery(start, end) + .subscribeWith(new ResponseDisposable>>(mContext, true) { + @Override + protected void onSuccess(MobResponse> mobResponse) { + if (null != mView) { + List flightDtoList = null; + if (null != mobResponse) { + if (mobResponse.getRetCode() == 200) { + flightDtoList = mobResponse.getResult(); + } else { + ToastUtils.showShort(mobResponse.getMsg()); + } + } + mView.flightInfoQuerySuccess(flightDtoList); + } + } + + @Override + protected void onFailure(int errorCode, String errorMsg) { + ToastUtils.showShort(errorMsg); + } + })); + } else {//如果航班号不为空,执行根据航班号查询航班信息 + mRxManager.add(mMobService.flightNoQuery(flightNo) + .subscribeWith(new ResponseDisposable>>(mContext, true) { + @Override + protected void onSuccess(MobResponse> mobResponse) { + if (null != mView) { + List flightDtoList = null; + if (null != mobResponse) { + if (mobResponse.getRetCode() == 200) { + flightDtoList = mobResponse.getResult(); + } else { + ToastUtils.showShort(mobResponse.getMsg()); + } + } + mView.flightInfoQuerySuccess(flightDtoList); + } + } + + @Override + protected void onFailure(int errorCode, String errorMsg) { + ToastUtils.showShort(errorMsg); + } + })); + } + } + + @Override + public void idCardQuery(String word) { + mRxManager.add(mMobService.idCardQuery(word) + .subscribeWith(new ResponseDisposable>(mContext, true) { + @Override + protected void onSuccess(MobResponse idCardDtoMobResponse) { + if (null != mView) { + IDCardDto idCardDto = null; + if (null != idCardDtoMobResponse) { + if (idCardDtoMobResponse.getRetCode() == 200) { + idCardDto = idCardDtoMobResponse.getResult(); + } else { + ToastUtils.showShort(idCardDtoMobResponse.getMsg()); + } + } + mView.idCardQuerySuccess(idCardDto); + } + } + + @Override + protected void onFailure(int errorCode, String errorMsg) { + ToastUtils.showShort(errorMsg); + } + })); + } + + @Override + public void dictionaryQuery(String word) { + mRxManager.add(mMobService.dictionaryQuery(word) + .subscribeWith(new ResponseDisposable>(mContext, true) { + @Override + protected void onSuccess(MobResponse dictionaryDtoMobResponse) { + if (null != mView) { + DictionaryDto dictionaryDto = null; + if (null != dictionaryDtoMobResponse) { + if (dictionaryDtoMobResponse.getRetCode() == 200) { + dictionaryDto = dictionaryDtoMobResponse.getResult(); + } else { + ToastUtils.showShort(dictionaryDtoMobResponse.getMsg()); + } + } + mView.dictionaryQuerySuccess(dictionaryDto); + } + } + + @Override + protected void onFailure(int errorCode, String errorMsg) { + ToastUtils.showShort(errorMsg); + } + })); + } + + @Override + public void idiomQuery(String idiomStr) { + mRxManager.add(mMobService.idiomQuery(idiomStr) + .subscribeWith(new ResponseDisposable>(mContext, true) { + @Override + protected void onSuccess(MobResponse idiomDtoMobResponse) { + if (null != mView) { + IdiomDto idiomDto = null; + if (null != idiomDtoMobResponse) { + if (idiomDtoMobResponse.getRetCode() == 200) { + idiomDto = idiomDtoMobResponse.getResult(); + } else { + ToastUtils.showShort(idiomDtoMobResponse.getMsg()); + } + } + mView.idiomQuerySuccess(idiomDto); + } + } + + @Override + protected void onFailure(int errorCode, String errorMsg) { + ToastUtils.showShort(errorMsg); + } + })); + } + + @Override + public void participleParse(String originStr) { + mRxManager.add(mMobService.participleParse(originStr) + .subscribeWith(new ResponseDisposable>>(mContext, true) { + @Override + protected void onSuccess(MobResponse> listMobResponse) { + if (null != mView) { + List stringList = null; + if (null != listMobResponse) { + if (listMobResponse.getRetCode() == 200) { + stringList = listMobResponse.getResult(); + } else { + ToastUtils.showShort(listMobResponse.getMsg()); + } + } + mView.participleParseSuccess(stringList); + } + } + + @Override + protected void onFailure(int errorCode, String errorMsg) { + ToastUtils.showShort(errorMsg); + } + })); + } +} diff --git a/main/src/main/java/com/heyongrui/main/mob/view/BezierEvaluator.java b/main/src/main/java/com/heyongrui/main/mob/view/BezierEvaluator.java new file mode 100644 index 0000000..cad9b07 --- /dev/null +++ b/main/src/main/java/com/heyongrui/main/mob/view/BezierEvaluator.java @@ -0,0 +1,50 @@ +package com.heyongrui.main.mob.view; + +import android.animation.TypeEvaluator; +import android.graphics.PointF; + +public class BezierEvaluator implements TypeEvaluator { + + //贝塞尔的两个控制点 + private PointF controlF1; + private PointF controlF2; + + public BezierEvaluator(PointF controlF1, PointF controlF2) { + this.controlF1 = controlF1; + this.controlF2 = controlF2; + } + + public BezierEvaluator(PointF controlF1) { + this.controlF1 = controlF1; + } + + @Override + public PointF evaluate(float time, PointF startValue, PointF endValue) { + float currentX, currentY; + if (controlF2 == null) { + //二阶贝塞尔曲线方程(一个控制点) + currentX = arithmeticProduct(1 - time, 2) * startValue.x + + 2 * time * (1 - time) * controlF1.x + + arithmeticProduct(time, 2) * endValue.x; + currentY = arithmeticProduct(1 - time, 2) * startValue.y + + 2 * time * (1 - time) * controlF1.y + + arithmeticProduct(time, 2) * endValue.y; + } else {//三阶贝塞尔曲线方程(两个控制点) + currentX = arithmeticProduct(1 - time, 3) * (startValue.x) + + 3 * arithmeticProduct(1 - time, 2) * time * (controlF1.x) + + 3 * (1 - time) * arithmeticProduct(time, 2) * (controlF2.x) + + arithmeticProduct(time, 3) * (endValue.x); + currentY = arithmeticProduct(1 - time, 3) * (startValue.y) + + 3 * arithmeticProduct(1 - time, 2) * time * (controlF1.y) + + 3 * (1 - time) * arithmeticProduct(time, 2) * (controlF2.y) + + arithmeticProduct(time, 3) * (endValue.y); + } + PointF currentP = new PointF(currentX, currentY); + return currentP; + } + + private float arithmeticProduct(float value, float square) {//返回浮点数的开方值 + double pow = Math.pow(value, square); + return (float) pow; + } +} \ No newline at end of file diff --git a/main/src/main/java/com/heyongrui/main/mob/view/MobActivity.java b/main/src/main/java/com/heyongrui/main/mob/view/MobActivity.java new file mode 100644 index 0000000..e953ba7 --- /dev/null +++ b/main/src/main/java/com/heyongrui/main/mob/view/MobActivity.java @@ -0,0 +1,264 @@ +package com.heyongrui.main.mob.view; + +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.text.SpannableStringBuilder; +import android.text.TextUtils; +import android.text.method.ScrollingMovementMethod; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.alibaba.android.arouter.facade.annotation.Autowired; +import com.alibaba.android.arouter.facade.annotation.Route; +import com.blankj.utilcode.util.ClickUtils; +import com.blankj.utilcode.util.SpanUtils; +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.heyongrui.base.assist.ConfigConstants; +import com.heyongrui.base.base.BaseActivity; +import com.heyongrui.base.utils.DrawableUtil; +import com.heyongrui.main.R; +import com.heyongrui.main.adapter.HomeSectionAdapter; +import com.heyongrui.main.adapter.HomeSectionEntity; +import com.heyongrui.main.data.dto.DictionaryDto; +import com.heyongrui.main.data.dto.FlightDto; +import com.heyongrui.main.data.dto.IDCardDto; +import com.heyongrui.main.data.dto.IdiomDto; +import com.heyongrui.main.mob.contract.MobContract; +import com.heyongrui.main.mob.presenter.MobPresenter; + +import java.util.ArrayList; +import java.util.List; + +@Route(path = ConfigConstants.PATH_MOB) +public class MobActivity extends BaseActivity implements MobContract.View + , BaseQuickAdapter.OnItemClickListener, View.OnClickListener { + + private TextView tvTitle; + private EditText etStart; + private ImageView ivSwitch; + private EditText etEnd; + private EditText etInput; + private TextView tvContent; + private RecyclerView rlvMob; + + @Autowired(name = "mobType") + int mMobType; + + private HomeSectionAdapter mMobAdapter; + + @Override + protected int getLayoutId() { + return R.layout.activity_mob; + } + + @Override + public void onClick(View view) { + int id = view.getId(); + if (id == R.id.iv_back) { + finish(); + } else if (id == R.id.iv_switch) { + String startStr = etStart.getText().toString(); + String endStr = etEnd.getText().toString(); + etStart.setText(endStr); + etEnd.setText(startStr); + } else if (id == R.id.btn_query) { + query(); + } + } + + @Override + protected MobContract.Presenter setPresenter() { + return new MobPresenter(); + } + + @Override + protected void init(Bundle savedInstanceState) { + //初始化View + ImageView ivBack = findViewById(R.id.iv_back); + tvTitle = findViewById(R.id.tv_title); + etStart = findViewById(R.id.et_start); + ivSwitch = findViewById(R.id.iv_switch); + etEnd = findViewById(R.id.et_end); + etInput = findViewById(R.id.et_input); + Button btnQuery = findViewById(R.id.btn_query); + ClickUtils.applyScale(btnQuery); + tvContent = findViewById(R.id.tv_content); + tvContent.setMovementMethod(ScrollingMovementMethod.getInstance()); + rlvMob = findViewById(R.id.rlv_mob); + + //图标着色 + Drawable drawable = DrawableUtil.tintDrawable(this, + R.drawable.ic_back, ContextCompat.getColor(this, R.color.background)); + ivBack.setImageDrawable(drawable); + + ivSwitch.setImageDrawable(DrawableUtil.tintDrawable(ivSwitch.getDrawable(), + ContextCompat.getColor(this, R.color.colorPrimaryDark))); + + mPresenter.setBorderBg(etStart, etEnd, etInput); + + //设置点击监听器 + addOnClickListeners(this, ivBack, ivSwitch, btnQuery); + + initViewStatus(); + + //初始化适配器 + mMobAdapter = mPresenter.initRecyclerView(rlvMob, this); + } + + private void initViewStatus() { + //初始化标题 + String titleStr = "", startTip = "", endTip = "", inputTip = ""; + if (mMobType == 1) {//分词解析 + titleStr = getString(R.string.participle_parse); + inputTip = getString(R.string.participle_parse_input_tip); + etStart.setVisibility(View.GONE); + ivSwitch.setVisibility(View.GONE); + etEnd.setVisibility(View.GONE); + etInput.setVisibility(View.VISIBLE); + tvContent.setVisibility(View.VISIBLE); + rlvMob.setVisibility(View.GONE); + } else if (mMobType == 2) {//航班查询 + titleStr = getString(R.string.flight_query); + startTip = getString(R.string.flight_start_input_tip); + endTip = getString(R.string.flight_end_input_tip); + inputTip = getString(R.string.flight_number_input_tip); + etStart.setVisibility(View.VISIBLE); + ivSwitch.setVisibility(View.VISIBLE); + etEnd.setVisibility(View.VISIBLE); + etInput.setVisibility(View.VISIBLE); + tvContent.setVisibility(View.GONE); + rlvMob.setVisibility(View.VISIBLE); + } else if (mMobType == 3) {//身份证查询 + titleStr = getString(R.string.id_card_query); + inputTip = getString(R.string.id_card_input_tip); + etStart.setVisibility(View.GONE); + ivSwitch.setVisibility(View.GONE); + etEnd.setVisibility(View.GONE); + etInput.setVisibility(View.VISIBLE); + tvContent.setVisibility(View.VISIBLE); + rlvMob.setVisibility(View.GONE); + } else if (mMobType == 5) {//新华字典查询 + titleStr = getString(R.string.dictionary_query); + inputTip = getString(R.string.dictionary_input_tip); + etStart.setVisibility(View.GONE); + ivSwitch.setVisibility(View.GONE); + etEnd.setVisibility(View.GONE); + etInput.setVisibility(View.VISIBLE); + tvContent.setVisibility(View.VISIBLE); + rlvMob.setVisibility(View.GONE); + } else if (mMobType == 6) {//成语查询 + titleStr = getString(R.string.idiom_query); + inputTip = getString(R.string.idiom_input_tip); + etStart.setVisibility(View.GONE); + ivSwitch.setVisibility(View.GONE); + etEnd.setVisibility(View.GONE); + etInput.setVisibility(View.VISIBLE); + tvContent.setVisibility(View.VISIBLE); + rlvMob.setVisibility(View.GONE); + } + tvTitle.setText(TextUtils.isEmpty(titleStr) ? "" : titleStr); + etStart.setHint(startTip); + etEnd.setHint(endTip); + etInput.setHint(inputTip); + } + + private void query() { + tvContent.setText(""); + mMobAdapter.replaceData(new ArrayList<>()); + if (null == mPresenter) return; + if (mMobType == 1) {//分词解析 + String originStr = etInput.getText().toString(); + mPresenter.participleParse(originStr); + } else if (mMobType == 2) {//航班查询 + String flightStart = etStart.getText().toString(); + String flightEnd = etEnd.getText().toString(); + String flightNumber = etInput.getText().toString(); + mPresenter.flightInfoQuery(flightStart, flightEnd, flightNumber); + } else if (mMobType == 3) {//身份证查询 + String idCardStr = etInput.getText().toString(); + mPresenter.idCardQuery(idCardStr); + } else if (mMobType == 5) {//新华字典查询 + String word = etInput.getText().toString(); + mPresenter.dictionaryQuery(word); + } else if (mMobType == 6) {//成语查询 + String idiom = etInput.getText().toString(); + mPresenter.idiomQuery(idiom); + } + } + + @Override + public void onItemClick(BaseQuickAdapter adapter, View view, int position) { + } + + @Override + public void flightInfoQuerySuccess(List flightDtoList) { + List newDataList = new ArrayList<>(); + if (null != flightDtoList) { + for (FlightDto flightDto : flightDtoList) { + newDataList.add(new HomeSectionEntity(HomeSectionEntity.FLIGHT, flightDto)); + } + } + mMobAdapter.replaceData(newDataList); + } + + @Override + public void idCardQuerySuccess(IDCardDto idCardDto) { + SpanUtils spanUtils = new SpanUtils(); + if (null != idCardDto) { + spanUtils.append(getString(R.string.idcard_address, idCardDto.getArea() + "\n\n")); + spanUtils.append(getString(R.string.idcard_birthday, idCardDto.getBirthday() + "\n\n")); + spanUtils.append(getString(R.string.idcard_sex, idCardDto.getSex())); + } + SpannableStringBuilder spannableStringBuilder = spanUtils.create(); + tvContent.setText(TextUtils.isEmpty(spannableStringBuilder) ? "" : spannableStringBuilder); + } + + @Override + public void dictionaryQuerySuccess(DictionaryDto dictionaryDto) { + SpanUtils spanUtils = new SpanUtils(); + if (null != dictionaryDto) { + spanUtils.append(getString(R.string.dictionary_word, dictionaryDto.getName() + "\n\n")); + spanUtils.append(getString(R.string.dictionary_wubi, dictionaryDto.getWubi() + "\n\n")); + spanUtils.append(getString(R.string.dictionary_bushou, dictionaryDto.getBushou() + "\n\n")); + spanUtils.append(getString(R.string.dictionary_bihua_without_bushou, dictionaryDto.getBihuaWithBushou() + "\n\n")); + spanUtils.append(getString(R.string.pinyin, dictionaryDto.getPinyin() + "\n\n")); + spanUtils.append(getString(R.string.dictionary_desc, dictionaryDto.getBrief() + "\n\n")); + spanUtils.append(getString(R.string.dictionary_detail, dictionaryDto.getDetail())); + } + SpannableStringBuilder spannableStringBuilder = spanUtils.create(); + tvContent.setText(TextUtils.isEmpty(spannableStringBuilder) ? "" : spannableStringBuilder); + } + + @Override + public void idiomQuerySuccess(IdiomDto idiomDto) { + SpanUtils spanUtils = new SpanUtils(); + if (null != idiomDto) { + spanUtils.append(getString(R.string.idiom_name, idiomDto.getName() + "\n\n")); + spanUtils.append(getString(R.string.pinyin, idiomDto.getPinyin() + "\n\n")); + spanUtils.append(getString(R.string.idiom_pretation, idiomDto.getPretation() + "\n\n")); + spanUtils.append(getString(R.string.idiom_from, idiomDto.getSource() + "\n\n")); + spanUtils.append(getString(R.string.idiom_sample, idiomDto.getSample() + "\n\n")); + spanUtils.append(getString(R.string.idiom_sample_from, idiomDto.getSampleFrom())); + } + SpannableStringBuilder spannableStringBuilder = spanUtils.create(); + tvContent.setText(TextUtils.isEmpty(spannableStringBuilder) ? "" : spannableStringBuilder); + } + + @Override + public void participleParseSuccess(List stringList) { + SpanUtils spanUtils = new SpanUtils(); + if (null != stringList) { + for (String participle : stringList) { + spanUtils.append(participle + "\t\t"); + } + } + SpannableStringBuilder spannableStringBuilder = spanUtils.create(); + tvContent.setText(TextUtils.isEmpty(spannableStringBuilder) ? "" : spannableStringBuilder); + } +} diff --git a/main/src/main/java/com/heyongrui/main/mob/view/MobWeatherActivity.java b/main/src/main/java/com/heyongrui/main/mob/view/MobWeatherActivity.java new file mode 100644 index 0000000..28ae78f --- /dev/null +++ b/main/src/main/java/com/heyongrui/main/mob/view/MobWeatherActivity.java @@ -0,0 +1,135 @@ +package com.heyongrui.main.mob.view; + +import android.animation.ValueAnimator; +import android.graphics.PointF; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; + +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.core.content.ContextCompat; + +import com.alibaba.android.arouter.facade.annotation.Route; +import com.blankj.utilcode.util.ScreenUtils; +import com.gyf.immersionbar.BarHide; +import com.gyf.immersionbar.ImmersionBar; +import com.heyongrui.base.assist.ConfigConstants; +import com.heyongrui.base.base.BaseActivity; +import com.heyongrui.base.utils.DrawableUtil; +import com.heyongrui.main.R; + +@Route(path = ConfigConstants.PATH_WEATHER) +public class MobWeatherActivity extends BaseActivity implements View.OnClickListener { + + private ImageView ivSun; + private ImageView ivMask; + + @Override + protected void initImmersionBar() { + ImmersionBar.with(this).fullScreen(true).hideBar(BarHide.FLAG_SHOW_BAR).init(); + } + + @Override + protected int getLayoutId() { + return R.layout.activity_mob_weather; + } + + @Override + public void onClick(View view) { + int id = view.getId(); + if (id == R.id.iv_back) { + finish(); + } + } + + @Override + protected void init(Bundle savedInstanceState) { + //初始化View + ImageView ivBack = findViewById(R.id.iv_back); + ivSun = findViewById(R.id.iv_sun); + ivMask = findViewById(R.id.iv_mask); + ivMask.getBackground().mutate().setAlpha(0); + + int statusBarHeight = ImmersionBar.getStatusBarHeight(this); + ViewGroup.LayoutParams layoutParams = ivBack.getLayoutParams(); + if (layoutParams instanceof ConstraintLayout.MarginLayoutParams) { + ((ViewGroup.MarginLayoutParams) layoutParams).topMargin = statusBarHeight; + ivBack.setLayoutParams(layoutParams); + } + + //图标着色 + Drawable drawable = DrawableUtil.tintDrawable(this, + R.drawable.ic_back, ContextCompat.getColor(this, R.color.background)); + ivBack.setImageDrawable(drawable); + + //设置点击监听器 + addOnClickListeners(this, ivBack); + } + + private void playSunAnim(float stopPercent) { + float startX = 0; + float startY = ivSun.getY(); + + float endX = ScreenUtils.getScreenWidth(); + float endY = startY; + + float controlY = 0; + float controlX = ScreenUtils.getScreenWidth() / 2; + //贝塞尔二阶曲线控制点 + PointF controlP = new PointF(controlX, controlY); + //构造贝塞尔估值器 + BezierEvaluator evaluator = new BezierEvaluator(controlP); + //贝塞尔动画 + ValueAnimator animator = ValueAnimator.ofObject(evaluator, new PointF(startX, startY), new PointF(endX, endY)); +// animator.setInterpolator(new AnticipateInterpolator()); + animator.addUpdateListener(valueAnimator -> { + PointF pointF = (PointF) valueAnimator.getAnimatedValue(); + //设置目标位置 + if (ivSun.getVisibility() != View.VISIBLE) { + ivSun.setVisibility(View.VISIBLE); + } + ivSun.setX(pointF.x); + ivSun.setY(pointF.y); + //设置透明度 + float percent = valueAnimator.getAnimatedFraction();//动画进度百分比 + //需要在哪里停止动画 + if (percent > (stopPercent - 0.1) && percent < (stopPercent + 0.1)) { + animator.cancel(); + } + ivMask.getBackground().mutate().setAlpha((int) (255 * percent)); + if (percent <= 0.5f) {//代表早晨到中午时间段,太阳慢慢升起,渐显渐大 + if (ivSun.getDrawable().getCurrent().getConstantState() != getResources().getDrawable(R.drawable.ic_sun).getConstantState()) { + ivSun.setImageResource(R.drawable.ic_sun); + } + float alpha = (float) (percent / 0.5); + alpha = alpha <= 0.3 ? (float) 0.3 : alpha; + ivSun.setAlpha(alpha); + ivSun.setScaleX((float) (0.3 + alpha)); + ivSun.setScaleY((float) (0.3 + alpha)); + } else if (percent <= 0.7f) {//代表中午到下午时间段,太阳慢慢降落,渐隐渐小 + if (ivSun.getDrawable().getCurrent().getConstantState() != getResources().getDrawable(R.drawable.ic_sun).getConstantState()) { + ivSun.setImageResource(R.drawable.ic_sun); + } + float alpha = (float) (1 - ((percent - 0.5) / 0.2)); + alpha = alpha <= 0.3 ? (float) 0.3 : alpha; + ivSun.setAlpha(alpha); + ivSun.setScaleX((float) (0.3 + alpha)); + ivSun.setScaleY((float) (0.3 + alpha)); + } else {//代表下午到晚上时间段,太阳消失,月亮慢慢出现,渐显渐大 + if (ivSun.getDrawable().getCurrent().getConstantState() != getResources().getDrawable(R.drawable.ic_moon).getConstantState()) { + ivSun.setImageResource(R.drawable.ic_moon); + } + float alpha = (float) ((percent - 0.7) / 0.3); + alpha = alpha <= 0.3 ? (float) 0.3 : alpha; + ivSun.setAlpha(alpha); + ivSun.setScaleX((float) (0.3 + alpha)); + ivSun.setScaleY((float) (0.3 + alpha)); + } + }); + animator.setTarget(ivSun); + animator.setDuration(4000); + animator.start(); + } +} diff --git a/main/src/main/res/drawable-xhdpi/bg_weather_one.jpg b/main/src/main/res/drawable-xhdpi/bg_weather_one.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2efd23148ec061628cea46d4b727e3e38ecaad9c GIT binary patch literal 94472 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ℨ8BK+x-#N>Mh>(YZt@}C5x7D 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 LxG6VJ@RI-834Tqd literal 0 HcmV?d00001 diff --git a/main/src/main/res/drawable-xhdpi/bg_weather_two.jpg b/main/src/main/res/drawable-xhdpi/bg_weather_two.jpg new file mode 100644 index 0000000000000000000000000000000000000000..987b3330e3480b4ab4cfd82e3cd09f0c1381c8f7 GIT binary patch literal 46240 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 literal 0 HcmV?d00001 diff --git a/main/src/main/res/drawable-xhdpi/ic_moon.png b/main/src/main/res/drawable-xhdpi/ic_moon.png new file mode 100644 index 0000000000000000000000000000000000000000..02d3f846a219883e5ed41c47fa4941bbb014d26a GIT binary patch literal 3846 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 literal 0 HcmV?d00001 diff --git a/main/src/main/res/drawable-xhdpi/ic_sun.png b/main/src/main/res/drawable-xhdpi/ic_sun.png new file mode 100644 index 0000000000000000000000000000000000000000..1132e0665522721d39a2970d42ca4b778d5141b3 GIT binary patch literal 4846 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 k; + + + + + + + + + + + + + + + + + + +