Skip to content

Commit

Permalink
2.607
Browse files Browse the repository at this point in the history
  • Loading branch information
WangDaYeeeeee committed May 23, 2020
1 parent 897033d commit 14e1ff2
Show file tree
Hide file tree
Showing 31 changed files with 677 additions and 70 deletions.
10 changes: 5 additions & 5 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ android {
applicationId "wangdaye.com.geometricweather"
minSdkVersion 19
targetSdkVersion 29 // 'R'
versionCode 2606
versionName "2.606"
versionCode 26067
versionName "2.607"
multiDexEnabled true
ndk {
abiFilters 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
Expand Down Expand Up @@ -84,14 +84,14 @@ dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')

// android x.
implementation 'com.google.android.material:material:1.2.0-alpha05'
implementation 'com.google.android.material:material:1.2.0-alpha06'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.preference:preference:1.1.0'
implementation 'androidx.preference:preference:1.1.1'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0'

// android architect.
implementation "androidx.work:work-runtime:2.3.3"
implementation "androidx.work:work-runtime:2.3.4"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
implementation "androidx.lifecycle:lifecycle-viewmodel:2.2.0"
implementation "androidx.lifecycle:lifecycle-livedata:2.2.0"
Expand Down
2 changes: 1 addition & 1 deletion app/release/output.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":2606,"versionName":"2.606","enabled":true,"outputFile":"GeometricWeather 2.606.apk","fullName":"release","baseName":"release","dirName":""},"path":"GeometricWeather 2.606.apk","properties":{}}]
[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":26067,"versionName":"2.607","enabled":true,"outputFile":"GeometricWeather 2.607.apk","fullName":"release","baseName":"release","dirName":""},"path":"GeometricWeather 2.607.apk","properties":{}}]
2 changes: 2 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@
<intent-filter>
<!--<action android:name="com.wangdaye.geometricweather.ICON_PROVIDER" />-->
<action android:name="com.wangdaye.geometricweather.Main" />
<action android:name="com.wangdaye.geomtricweather.ACTION_SHOW_ALERTS" />
<action android:name="com.wangdaye.geomtricweather.ACTION_SHOW_DAILY_FORECAST" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,19 @@ public static GeometricWeather getInstance() {
public static final int WIDGET_DAY_PENDING_INTENT_CODE_CALENDAR = 13;
// week.
public static final int WIDGET_WEEK_PENDING_INTENT_CODE_WEATHER = 21;
public static final int WIDGET_WEEK_PENDING_INTENT_CODE_DAILY_FORECAST_1 = 211;
public static final int WIDGET_WEEK_PENDING_INTENT_CODE_DAILY_FORECAST_2 = 212;
public static final int WIDGET_WEEK_PENDING_INTENT_CODE_DAILY_FORECAST_3 = 213;
public static final int WIDGET_WEEK_PENDING_INTENT_CODE_DAILY_FORECAST_4 = 214;
public static final int WIDGET_WEEK_PENDING_INTENT_CODE_DAILY_FORECAST_5 = 215;
public static final int WIDGET_WEEK_PENDING_INTENT_CODE_REFRESH = 22;
// day + week.
public static final int WIDGET_DAY_WEEK_PENDING_INTENT_CODE_WEATHER = 31;
public static final int WIDGET_DAY_WEEK_PENDING_INTENT_CODE_DAILY_FORECAST_1 = 311;
public static final int WIDGET_DAY_WEEK_PENDING_INTENT_CODE_DAILY_FORECAST_2 = 312;
public static final int WIDGET_DAY_WEEK_PENDING_INTENT_CODE_DAILY_FORECAST_3 = 313;
public static final int WIDGET_DAY_WEEK_PENDING_INTENT_CODE_DAILY_FORECAST_4 = 314;
public static final int WIDGET_DAY_WEEK_PENDING_INTENT_CODE_DAILY_FORECAST_5 = 315;
public static final int WIDGET_DAY_WEEK_PENDING_INTENT_CODE_REFRESH = 32;
public static final int WIDGET_DAY_WEEK_PENDING_INTENT_CODE_CALENDAR = 33;
// clock + day (vertical).
Expand Down Expand Up @@ -100,11 +110,17 @@ public static GeometricWeather getInstance() {
public static final int WIDGET_CLOCK_DAY_DETAILS_PENDING_INTENT_CODE_CLOCK_BLACK = 76;
// clock + day + week.
public static final int WIDGET_CLOCK_DAY_WEEK_PENDING_INTENT_CODE_WEATHER = 81;
public static final int WIDGET_CLOCK_DAY_WEEK_PENDING_INTENT_CODE_DAILY_FORECAST_1 = 821;
public static final int WIDGET_CLOCK_DAY_WEEK_PENDING_INTENT_CODE_DAILY_FORECAST_2 = 822;
public static final int WIDGET_CLOCK_DAY_WEEK_PENDING_INTENT_CODE_DAILY_FORECAST_3 = 823;
public static final int WIDGET_CLOCK_DAY_WEEK_PENDING_INTENT_CODE_DAILY_FORECAST_4 = 824;
public static final int WIDGET_CLOCK_DAY_WEEK_PENDING_INTENT_CODE_DAILY_FORECAST_5 = 825;
public static final int WIDGET_CLOCK_DAY_WEEK_PENDING_INTENT_CODE_REFRESH = 82;
public static final int WIDGET_CLOCK_DAY_WEEK_PENDING_INTENT_CODE_CALENDAR = 83;
public static final int WIDGET_CLOCK_DAY_WEEK_PENDING_INTENT_CODE_CLOCK_LIGHT = 84;
public static final int WIDGET_CLOCK_DAY_WEEK_PENDING_INTENT_CODE_CLOCK_NORMAL = 85;
public static final int WIDGET_CLOCK_DAY_WEEK_PENDING_INTENT_CODE_CLOCK_BLACK = 86;

// text.
public static final int WIDGET_TEXT_PENDING_INTENT_CODE_WEATHER = 91;
public static final int WIDGET_TEXT_PENDING_INTENT_CODE_REFRESH = 92;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import android.view.ViewGroup;
import android.view.animation.DecelerateInterpolator;

import java.util.HashMap;
import java.util.List;
import java.util.concurrent.TimeUnit;

Expand All @@ -37,6 +38,7 @@
import wangdaye.com.geometricweather.basic.model.option.DarkMode;
import wangdaye.com.geometricweather.basic.model.option.provider.WeatherSource;
import wangdaye.com.geometricweather.basic.model.resource.Resource;
import wangdaye.com.geometricweather.basic.model.weather.Weather;
import wangdaye.com.geometricweather.databinding.ActivityMainBinding;
import wangdaye.com.geometricweather.main.adapter.main.MainAdapter;
import wangdaye.com.geometricweather.main.dialog.LocationHelpDialog;
Expand Down Expand Up @@ -71,6 +73,9 @@ public class MainActivity extends GeoActivity
private MainActivityViewModel viewModel;
private ActivityMainBinding binding;

@Nullable private String pendingAction;
@Nullable private HashMap<String, Object> pendingExtraMap;

@Nullable private LocationManageFragment manageFragment;
private WeatherView weatherView;
@Nullable private MainAdapter adapter;
Expand All @@ -91,13 +96,21 @@ public class MainActivity extends GeoActivity

private static final long INVALID_CURRENT_WEATHER_TIME_STAMP = -1;

public static final String ACTION_MAIN = "com.wangdaye.geometricweather.Main";
public static final String KEY_MAIN_ACTIVITY_LOCATION_FORMATTED_ID
= "MAIN_ACTIVITY_LOCATION_FORMATTED_ID";

public static final String ACTION_UPDATE_WEATHER_IN_BACKGROUND
= "com.wangdaye.geomtricweather.ACTION_UPDATE_WEATHER_IN_BACKGROUND";
public static final String KEY_LOCATION_FORMATTED_ID = "LOCATION_FORMATTED_ID";

public static final String ACTION_SHOW_ALERTS
= "com.wangdaye.geomtricweather.ACTION_SHOW_ALERTS";

public static final String ACTION_SHOW_DAILY_FORECAST
= "com.wangdaye.geomtricweather.ACTION_SHOW_DAILY_FORECAST";
public static final String KEY_DAILY_INDEX = "DAILY_INDEX";

private BroadcastReceiver backgroundUpdateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Expand All @@ -119,6 +132,8 @@ public void onReceive(Context context, Intent intent) {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.pendingIntentAction(getIntent());

binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());

Expand Down Expand Up @@ -156,11 +171,13 @@ protected void onCreate(Bundle savedInstanceState) {
);
refreshBackgroundViews(true, viewModel.getLocationList(),
false, false);

}

@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
this.pendingIntentAction(intent);
resetUIUpdateFlag();
viewModel.init(this, getLocationId(intent));
}
Expand Down Expand Up @@ -309,6 +326,9 @@ public void onLocationListChanged() {
}
return true;
});
binding.toolbar.setOnClickListener(v -> {
NotificationUtils.checkAndSendAlert(this, viewModel.getCurrentLocationValue(), null);
});

binding.switchLayout.setOnSwitchListener(switchListener);

Expand Down Expand Up @@ -360,6 +380,8 @@ public void onLocationListChanged() {
} else if (resource.status == Resource.Status.ERROR) {
SnackbarUtils.showSnackbar(this, getString(R.string.feedback_get_weather_failed));
}

consumeIntentAction();
});

viewModel.getIndicator().observe(this, resource -> {
Expand Down Expand Up @@ -559,6 +581,52 @@ private void refreshBackgroundViews(boolean resetBackground, List<Location> loca
}
}

private void pendingIntentAction(Intent intent) {
String action = intent.getAction();
if (TextUtils.isEmpty(action)) {
pendingAction = null;
pendingExtraMap = null;
return;
}

if (action.equals(ACTION_SHOW_ALERTS)) {
pendingAction = ACTION_SHOW_ALERTS;
pendingExtraMap = new HashMap<>();
} else if (action.equals(ACTION_SHOW_DAILY_FORECAST)) {
pendingAction = ACTION_SHOW_DAILY_FORECAST;

pendingExtraMap = new HashMap<>();
pendingExtraMap.put(KEY_DAILY_INDEX, intent.getIntExtra(KEY_DAILY_INDEX, 0));
}
}

private void consumeIntentAction() {
String action = pendingAction;
HashMap<String, Object> extraMap = pendingExtraMap;
pendingAction = null;
pendingExtraMap = null;
if (TextUtils.isEmpty(action) || extraMap == null) {
return;
}

if (action.equals(ACTION_SHOW_ALERTS)) {
Location location = viewModel.getCurrentLocationValue();
if (location != null) {
Weather weather = location.getWeather();
if (weather != null) {
IntentHelper.startAlertActivity(this, weather);
}
}
} else if (action.equals(ACTION_SHOW_DAILY_FORECAST)) {
String formattedId = viewModel.getCurrentLocationFormattedId();
Integer index = (Integer) extraMap.get(KEY_DAILY_INDEX);
if (formattedId != null && index != null) {
IntentHelper.startDailyWeatherActivity(
this, viewModel.getCurrentLocationFormattedId(), index);
}
}
}

// interface.

// on touch listener.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,24 +125,24 @@ public DailyAirQualityAdapter(GeoActivity activity, TrendRecyclerView parent,
keyLineList.add(
new TrendRecyclerView.KeyLine(
AirQuality.AQI_INDEX_1,
activity.getString(R.string.aqi_1),
String.valueOf(AirQuality.AQI_INDEX_1),
activity.getString(R.string.aqi_1),
TrendRecyclerView.KeyLine.ContentPosition.ABOVE_LINE
)
);
keyLineList.add(
new TrendRecyclerView.KeyLine(
AirQuality.AQI_INDEX_3,
activity.getString(R.string.aqi_3),
String.valueOf(AirQuality.AQI_INDEX_3),
activity.getString(R.string.aqi_3),
TrendRecyclerView.KeyLine.ContentPosition.ABOVE_LINE
)
);
keyLineList.add(
new TrendRecyclerView.KeyLine(
AirQuality.AQI_INDEX_5,
activity.getString(R.string.aqi_5),
String.valueOf(AirQuality.AQI_INDEX_5),
activity.getString(R.string.aqi_5),
TrendRecyclerView.KeyLine.ContentPosition.ABOVE_LINE
)
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,32 +131,32 @@ public DailyPrecipitationAdapter(GeoActivity activity, TrendRecyclerView parent,
keyLineList.add(
new TrendRecyclerView.KeyLine(
Precipitation.PRECIPITATION_LIGHT,
activity.getString(R.string.precipitation_light),
unit.getPrecipitationTextWithoutUnit(Precipitation.PRECIPITATION_LIGHT),
activity.getString(R.string.precipitation_light),
TrendRecyclerView.KeyLine.ContentPosition.ABOVE_LINE
)
);
keyLineList.add(
new TrendRecyclerView.KeyLine(
Precipitation.PRECIPITATION_HEAVY,
activity.getString(R.string.precipitation_heavy),
unit.getPrecipitationTextWithoutUnit(Precipitation.PRECIPITATION_HEAVY),
activity.getString(R.string.precipitation_heavy),
TrendRecyclerView.KeyLine.ContentPosition.ABOVE_LINE
)
);
keyLineList.add(
new TrendRecyclerView.KeyLine(
-Precipitation.PRECIPITATION_LIGHT,
activity.getString(R.string.precipitation_light),
unit.getPrecipitationTextWithoutUnit(Precipitation.PRECIPITATION_LIGHT),
activity.getString(R.string.precipitation_light),
TrendRecyclerView.KeyLine.ContentPosition.BELOW_LINE
)
);
keyLineList.add(
new TrendRecyclerView.KeyLine(
-Precipitation.PRECIPITATION_HEAVY,
activity.getString(R.string.precipitation_heavy),
unit.getPrecipitationTextWithoutUnit(Precipitation.PRECIPITATION_HEAVY),
activity.getString(R.string.precipitation_heavy),
TrendRecyclerView.KeyLine.ContentPosition.BELOW_LINE
)
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,8 @@ public DailyUVAdapter(GeoActivity activity, TrendRecyclerView parent,
keyLineList.add(
new TrendRecyclerView.KeyLine(
UV.UV_INDEX_HIGH,
activity.getString(R.string.action_alert),
String.valueOf(UV.UV_INDEX_HIGH),
activity.getString(R.string.action_alert),
TrendRecyclerView.KeyLine.ContentPosition.ABOVE_LINE
)
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,32 +146,32 @@ public DailyWindAdapter(GeoActivity activity, TrendRecyclerView parent, String f
keyLineList.add(
new TrendRecyclerView.KeyLine(
Wind.WIND_SPEED_3,
activity.getString(R.string.wind_3),
unit.getSpeedTextWithoutUnit(Wind.WIND_SPEED_3),
activity.getString(R.string.wind_3),
TrendRecyclerView.KeyLine.ContentPosition.ABOVE_LINE
)
);
keyLineList.add(
new TrendRecyclerView.KeyLine(
Wind.WIND_SPEED_7,
activity.getString(R.string.wind_7),
unit.getSpeedTextWithoutUnit(Wind.WIND_SPEED_7),
activity.getString(R.string.wind_7),
TrendRecyclerView.KeyLine.ContentPosition.ABOVE_LINE
)
);
keyLineList.add(
new TrendRecyclerView.KeyLine(
-Wind.WIND_SPEED_3,
activity.getString(R.string.wind_3),
unit.getSpeedTextWithoutUnit(Wind.WIND_SPEED_3),
activity.getString(R.string.wind_3),
TrendRecyclerView.KeyLine.ContentPosition.BELOW_LINE
)
);
keyLineList.add(
new TrendRecyclerView.KeyLine(
-Wind.WIND_SPEED_7,
activity.getString(R.string.wind_7),
unit.getSpeedTextWithoutUnit(Wind.WIND_SPEED_7),
activity.getString(R.string.wind_7),
TrendRecyclerView.KeyLine.ContentPosition.BELOW_LINE
)
);
Expand Down
Loading

0 comments on commit 14e1ff2

Please sign in to comment.