Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OWP-12 #comment 替换预报组件,根据返回结果显示 #PR #8

Merged
merged 1 commit into from
Jan 4, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

33 changes: 30 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,24 +1,34 @@
apply plugin: 'com.android.application'
apply plugin: 'walle'

android {
compileSdkVersion 28
defaultConfig {
applicationId "com.heweather.owp"
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
versionCode 2
versionName "1.0.1"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

signingConfigs {
he {
keyAlias "heweather"
keyPassword "He123qwe."
storeFile rootProject.file("he.jks")
storePassword "He123qwe."
}
}
buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.he
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.he
}
}
allprojects {
Expand All @@ -44,6 +54,23 @@ android {
release.setRoot('build-types/release')
}
}
buildscript {
repositories {
jcenter()
}
}
//生成渠道包 ./gradlew clean assembleReleaseChannels
//支持 productFlavors ./gradlew clean assembleMeituanReleaseChannels
//生成单个渠道包 ./gradlew clean assembleReleaseChannels -PchannelList=google
//生成多个渠道包 ./gradlew clean assembleReleaseChannels -PchannelList=google,dianping
walle {
// 指定渠道包的输出路径
apkOutputFolder = new File("${project.buildDir}/channels")
// 定制渠道包的APK的文件名称
apkFileNameFormat = '${appName}-${channel}-${buildType}-v${versionName}-${versionCode}-${buildTime}.apk'
// 渠道配置文件
channelFile = new File("${project.getProjectDir()}/channel")
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0'
Expand Down
9 changes: 6 additions & 3 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,12 @@
android:theme="@style/AppTheme">
<activity
android:name=".view.activity.MainActivity"
android:exported="true"
android:launchMode="singleInstance" />
<activity android:name=".view.activity.SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Expand All @@ -47,19 +49,20 @@
<!-- 设置key -->
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="高德的key" />
android:value="9656fca1e4cef43a19082b4f37b600bb" />

<service android:name="com.amap.api.location.APSService" />
<service
android:name=".service.LocationService"
android:enabled="true"
android:exported="true" />
android:exported="true"
android:permission="android.permission.ACCESS_FINE_LOCATION" />

<activity android:name=".view.activity.SettingActivity" />
<activity android:name=".view.activity.ControlCityActivity" />
<activity android:name=".view.activity.AboutActivity" />
<activity android:name=".view.activity.BaseActivity" />
<activity android:name=".view.activity.SearchActivity"/>
<activity android:name=".view.activity.SearchActivity" />
</application>

</manifest>
153 changes: 153 additions & 0 deletions app/src/main/java/com/heweather/owp/adapter/ForecastAdapter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
package com.heweather.owp.adapter;

import android.annotation.SuppressLint;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.Adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.heweather.owp.R;
import com.heweather.owp.bean.CityBean;
import com.heweather.owp.utils.ContentUtil;
import com.heweather.owp.utils.IconUtils;
import com.heweather.owp.view.activity.ControlCityActivity;

import org.joda.time.DateTime;

import java.util.List;

import interfaces.heweather.com.interfacesmodule.bean.weather.forecast.ForecastBase;

public class ForecastAdapter extends Adapter<ForecastAdapter.MyViewHolder> {

private List<ForecastBase> datas;
private Context context;

public ForecastAdapter(Context context, List<ForecastBase> datas) {
this.datas = datas;
this.context = context;
}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_forecast, viewGroup, false);
return new MyViewHolder(view);
}

public void refreshData(Context context, List<ForecastBase> datas) {
this.datas = datas;
this.context = context;
notifyDataSetChanged();
}

@SuppressLint("SetTextI18n")
@Override
public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, @SuppressLint("RecyclerView") final int i) {
ForecastBase forecastBase = datas.get(i);
String condCodeD = forecastBase.getCond_code_d();
String condCodeN = forecastBase.getCond_code_n();
String tmpMin = forecastBase.getTmp_min();
String tmpMax = forecastBase.getTmp_max();
myViewHolder.tvMax.setText(tmpMax + "°");
myViewHolder.tvMin.setText(tmpMin + "°");
myViewHolder.ivDay.setImageResource(IconUtils.getDayIconDark(condCodeD));
myViewHolder.ivNight.setImageResource(IconUtils.getDayIconDark(condCodeN));
DateTime now = DateTime.now();
myViewHolder.tvWeek.setText(getWeek(now.plusDays(i).getDayOfWeek()));
myViewHolder.tvWeek.setTextColor(context.getResources().getColor(R.color.edit_hint_color));
if (i == 0) {
myViewHolder.tvWeek.setText(context.getString(R.string.today));
}
}

/**
* 获取星期
*
* @param num 0-6
* @return 星期
*/
private String getWeek(int num) {
String week = " ";
if (ContentUtil.APP_SETTING_LANG.equals("en") || ContentUtil.APP_SETTING_LANG.equals("sys") && ContentUtil.SYS_LANG.equals("en")) {
switch (num) {
case 1:
week = "Mon";
break;
case 2:
week = "Tues";
break;
case 3:
week = "Wed";
break;
case 4:
week = "Thur";
break;
case 5:
week = "Fri";
break;
case 6:
week = "Sat";
break;
case 7:
week = "Sun";
break;
}
} else {
switch (num) {
case 1:
week = "周一";
break;
case 2:
week = "周二";
break;
case 3:
week = "周三";
break;
case 4:
week = "周四";
break;
case 5:
week = "周五";
break;
case 6:
week = "周六";
break;
case 7:
week = "周日";
break;
}
}
return week;
}


@Override
public int getItemCount() {
return datas.size();
}


class MyViewHolder extends RecyclerView.ViewHolder {

private final ImageView ivDay;
private final ImageView ivNight;
private final TextView tvWeek;
private final TextView tvMin;
private final TextView tvMax;

MyViewHolder(@NonNull View itemView) {
super(itemView);
ivDay = itemView.findViewById(R.id.iv_day);
ivNight = itemView.findViewById(R.id.iv_night);
tvWeek = itemView.findViewById(R.id.tv_week);
tvMin = itemView.findViewById(R.id.tv_min);
tvMax = itemView.findViewById(R.id.tv_max);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ public void onClick(View view) {
saveData(Lang.CHINESE_SIMPLIFIED, "cityBean", cid);
saveBean("cityBeanEn", cid, i);
}

activity.onBackPressed();
}
});
}
Expand Down Expand Up @@ -175,7 +175,6 @@ public void onSuccess(Search search) {
cityBeans.setCityBeans(citys);
SpUtils.saveBean(activity, key, cityBeans);
DataUtil.setCid(cid);
activity.onBackPressed();
}
}
});
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/com/heweather/owp/utils/ContentUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
public class ContentUtil {

//用户id
public static final String APK_USERNAME = "和风天气获取的ID";
public static final String APK_USERNAME = "HE1903211415311839";
//用户key
public static final String APK_KEY = "和风天气获取的KEY";
public static final String APK_KEY = "a7b3fdf76a2b44fc91e36b2afe63d080";
//当前所在位置
public static Double NOW_LON = 116.40;
public static Double NOW_LAT = 39.9;
Expand Down
Loading