Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
WangDaYeeeeee committed May 12, 2020
1 parent 21be1e1 commit 897033d
Show file tree
Hide file tree
Showing 114 changed files with 2,990 additions and 1,604 deletions.
5 changes: 4 additions & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
viewBinding {
enabled = true
}
}

allprojects {
Expand Down Expand Up @@ -88,7 +91,7 @@ dependencies {
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0'

// android architect.
implementation "androidx.work:work-runtime:2.3.2"
implementation "androidx.work:work-runtime:2.3.3"
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
8 changes: 7 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@
android:label="@string/action_manage"
android:theme="@style/GeometricWeatherTheme" />

<activity android:name=".ui.activity.SearcActivity"
<activity android:name=".ui.activity.SearchActivity"
android:label="@string/action_search"
android:theme="@style/GeometricWeatherTheme.Search" />

Expand All @@ -126,6 +126,12 @@
android:theme="@style/GeometricWeatherTheme"
android:screenOrientation="user" />

<activity
android:name=".settings.activity.DailyTrendDisplayManageActivity"
android:label="@string/settings_title_daily_trend_display"
android:theme="@style/GeometricWeatherTheme"
android:screenOrientation="user" />

<activity
android:name=".settings.activity.SelectProviderActivity"
android:label="@string/settings_title_service_provider"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,35 +34,33 @@ public void onCreate() {
);
channel.setShowBadge(false);
channel.setLightColor(ContextCompat.getColor(this, R.color.colorPrimary));

NotificationManagerCompat.from(this).createNotificationChannel(channel);
startForeground(
getForegroundNotificationId(),
getForegroundNotification(
1,
DatabaseHelper.getInstance(this).countLocation()
).build()
);
}

// version O.
startForeground(
getForegroundNotificationId(),
getForegroundNotification(
1,
DatabaseHelper.getInstance(this).countLocation()
).build()
);

super.onCreate();
}

@Override
public void onDestroy() {
super.onDestroy();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
stopForeground(true);
NotificationManagerCompat.from(this).cancel(getForegroundNotificationId());
}
// version O.
stopForeground(true);
NotificationManagerCompat.from(this).cancel(getForegroundNotificationId());
}

@Override
public void stopService(boolean updateFailed) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
stopForeground(true);
NotificationManagerCompat.from(this).cancel(getForegroundNotificationId());
}
stopForeground(true);
NotificationManagerCompat.from(this).cancel(getForegroundNotificationId());
super.stopService(updateFailed);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ private static void refreshTile(Context context, Tile tile) {
);
tile.setLabel(
weather.getCurrent().getTemperature().getTemperature(
context,
SettingsOptionManager.getInstance(context).getTemperatureUnit())
);
tile.setState(Tile.STATE_INACTIVE);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package wangdaye.com.geometricweather.basic.model.option.appearance;

import android.content.Context;

import androidx.annotation.StringRes;

import wangdaye.com.geometricweather.R;

public enum DailyTrendDisplay {

TAG_TEMPERATURE("temperature", R.string.temperature),
TAG_AIR_QUALITY("air_quality", R.string.air_quality),
TAG_WIND("wind", R.string.wind),
TAG_UV_INDEX("uv_index", R.string.uv_index),
TAG_PRECIPITATION("precipitation", R.string.precipitation);

private String value;
private @StringRes int nameId;

DailyTrendDisplay(String value, int nameId) {
this.value = value;
this.nameId = nameId;
}

public String getTagValue() {
return value;
}

public String getTagName(Context context) {
return context.getString(nameId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ public enum Language {
CZECH("czech", new Locale("cs")),
POLISH("polish", new Locale("pl")),
KOREAN("korean", new Locale("ko")),
GREEK("greek", new Locale("el"));
GREEK("greek", new Locale("el")),
JAPANESE("japanese", new Locale("ja"));

private String languageId;
private Locale locale;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package wangdaye.com.geometricweather.basic.model.option.unit;

import android.content.Context;
import android.text.BidiFormatter;

import wangdaye.com.geometricweather.R;
import wangdaye.com.geometricweather.utils.DisplayUtils;

public enum AirQualityUnit {

Expand All @@ -27,7 +29,13 @@ public float getDensity(float mugpcum) {
}

public String getDensityText(Context context, float mugpcum) {
return UnitUtils.formatFloat(mugpcum * unitFactor, 1)
+ context.getResources().getStringArray(R.array.air_quality_units)[unitArrayIndex];
if (DisplayUtils.isRtl(context)) {
return BidiFormatter.getInstance().unicodeWrap(
UnitUtils.formatFloat(mugpcum * unitFactor, 1)
) + context.getResources().getStringArray(R.array.air_quality_units)[unitArrayIndex];
} else {
return UnitUtils.formatFloat(mugpcum * unitFactor, 1)
+ context.getResources().getStringArray(R.array.air_quality_units)[unitArrayIndex];
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ public enum CloudCoverUnit {
}

public String getCloudCoverText(int percent) {
return percent + unitAbbreviation;
return UnitUtils.formatInt(percent) + unitAbbreviation;
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package wangdaye.com.geometricweather.basic.model.option.unit;

import android.content.Context;
import android.text.BidiFormatter;

import wangdaye.com.geometricweather.R;
import wangdaye.com.geometricweather.utils.DisplayUtils;

public enum DurationUnit {

Expand All @@ -23,7 +25,13 @@ public String getUnitId() {
}

public String getDurationText(Context context, float h) {
return UnitUtils.formatFloat(h * unitFactor, 1)
+ context.getResources().getStringArray(R.array.duration_units)[unitArrayIndex];
if (DisplayUtils.isRtl(context)) {
return BidiFormatter.getInstance().unicodeWrap(
UnitUtils.formatFloat(h * unitFactor, 1)
) + context.getResources().getStringArray(R.array.duration_units)[unitArrayIndex];
} else {
return UnitUtils.formatFloat(h * unitFactor, 1)
+ context.getResources().getStringArray(R.array.duration_units)[unitArrayIndex];
}
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package wangdaye.com.geometricweather.basic.model.option.unit;

import android.content.Context;
import android.text.BidiFormatter;

import androidx.annotation.Nullable;

import wangdaye.com.geometricweather.R;
import wangdaye.com.geometricweather.utils.DisplayUtils;

public enum PollenUnit {

Expand All @@ -23,7 +25,13 @@ public String getUnitId() {
}

public String getPollenText(Context context, int value) {
return value + context.getResources().getStringArray(R.array.pollen_units)[unitArrayIndex];
if (DisplayUtils.isRtl(context)) {
return BidiFormatter.getInstance().unicodeWrap(UnitUtils.formatInt(value))
+ context.getResources().getStringArray(R.array.pollen_units)[unitArrayIndex];
} else {
return UnitUtils.formatInt(value)
+ context.getResources().getStringArray(R.array.pollen_units)[unitArrayIndex];
}
}

public String getPollenText(Context context, @Nullable Integer value) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package wangdaye.com.geometricweather.basic.model.option.unit;

import android.content.Context;
import android.text.BidiFormatter;

import wangdaye.com.geometricweather.utils.DisplayUtils;

public enum ProbabilityUnit {

PERCENT("%");
Expand All @@ -10,7 +15,12 @@ public enum ProbabilityUnit {
unitAbbreviation = abbreviation;
}

public String getProbabilityText(float percent) {
return (int) percent + unitAbbreviation;
public String getProbabilityText(Context context, float percent) {
if (DisplayUtils.isRtl(context)) {
return BidiFormatter.getInstance().unicodeWrap(UnitUtils.formatInt((int) percent))
+ unitAbbreviation;
} else {
return UnitUtils.formatInt((int) percent) + unitAbbreviation;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ public enum RelativeHumidityUnit {
}

public String getRelativeHumidityText(float percent) {
return (int) percent + unitAbbreviation;
return UnitUtils.formatInt((int) percent) + unitAbbreviation;
}
}
Original file line number Diff line number Diff line change
@@ -1,27 +1,28 @@
package wangdaye.com.geometricweather.basic.model.option.unit;

import android.content.Context;
import android.text.BidiFormatter;

import wangdaye.com.geometricweather.R;
import wangdaye.com.geometricweather.utils.DisplayUtils;

public enum TemperatureUnit {

C("c", "℃", "°C", "°", c -> c),
F("f", "℉", "°F", "°", c -> (int) (32 + c * 1.8f)),
K("k", "K", "K", "K", c -> (int) (273.15 + c));
C("c", 0, c -> c),
F("f", 1, c -> (int) (32 + c * 1.8f)),
K("k", 2, c -> (int) (273.15 + c));

private String unitId;
private String unitAbbreviation;
private String unitLongAbbreviation;
private String unitShortAbbreviation;
private int unitArrayIndex;
private Calculator unitCalculator;

public interface Calculator {
int getTemperature(int c);
}

TemperatureUnit(String id, String abbreviation, String longAbbreviation, String shortAbbreviation,
Calculator calculator) {
TemperatureUnit(String id, int index, Calculator calculator) {
unitId = id;
unitAbbreviation = abbreviation;
unitLongAbbreviation = longAbbreviation;
unitShortAbbreviation = shortAbbreviation;
unitArrayIndex = index;
unitCalculator = calculator;
}

Expand All @@ -33,27 +34,45 @@ public int getTemperature(int c) {
return unitCalculator.getTemperature(c);
}

public String getTemperatureText(int c) {
return unitCalculator.getTemperature(c) + unitAbbreviation;
public String getTemperatureText(Context context, int c) {
if (DisplayUtils.isRtl(context)) {
return BidiFormatter.getInstance().unicodeWrap(
UnitUtils.formatInt(getTemperature(c))
) + getAbbreviation(context);
} else {
return getTemperature(c) + getAbbreviation(context);
}
}

public String getLongTemperatureText(int c) {
return unitCalculator.getTemperature(c) + unitLongAbbreviation;
public String getLongTemperatureText(Context context, int c) {
if (DisplayUtils.isRtl(context)) {
return BidiFormatter.getInstance().unicodeWrap(
UnitUtils.formatInt(getTemperature(c))
) + getLongAbbreviation(context);
} else {
return getTemperature(c) + getLongAbbreviation(context);
}
}

public String getShortTemperatureText(int c) {
return unitCalculator.getTemperature(c) + unitShortAbbreviation;
public String getShortTemperatureText(Context context, int c) {
if (DisplayUtils.isRtl(context)) {
return BidiFormatter.getInstance().unicodeWrap(
UnitUtils.formatInt(getTemperature(c))
) + getShortAbbreviation(context);
} else {
return getTemperature(c) + getShortAbbreviation(context);
}
}

public String getAbbreviation() {
return unitAbbreviation;
public String getAbbreviation(Context context) {
return context.getResources().getStringArray(R.array.temperature_units)[unitArrayIndex];
}

public String getLongAbbreviation() {
return unitLongAbbreviation;
public String getLongAbbreviation(Context context) {
return context.getResources().getStringArray(R.array.temperature_units_long)[unitArrayIndex];
}

public String getUnitShortAbbreviation() {
return unitShortAbbreviation;
public String getShortAbbreviation(Context context) {
return context.getResources().getStringArray(R.array.temperature_units_short)[unitArrayIndex];
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package wangdaye.com.geometricweather.basic.model.option.unit;

import android.annotation.SuppressLint;

class UnitUtils {

static String formatFloat(float value) {
Expand All @@ -12,4 +14,9 @@ static String formatFloat(float value, int decimalNumber) {
value
);
}

@SuppressLint("DefaultLocale")
static String formatInt(int value) {
return String.format("%d", value);
}
}
Loading

0 comments on commit 897033d

Please sign in to comment.