diff --git a/app/build.gradle b/app/build.gradle index ea80b4836..b759dfede 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -37,6 +37,8 @@ repositories { String[] archs = ['arm64-v8a', 'armeabi', 'mips', 'mips64', 'x86', 'x86_64'] dependencies { + // use jdk8 java.time backport, as long app < Build.VERSION_CODES.O + implementation("com.jakewharton.threetenabp:threetenabp:1.1.1") // Get kiwixlib online if it is not populated locally if (file("../kiwixlib/src/main").list().length == 1) { implementation 'org.kiwix.kiwixlib:kiwixlib:1.0.11' @@ -170,7 +172,7 @@ android { testServer new TestDroidUpload(); defaultConfig { - minSdkVersion 14 + minSdkVersion 15 targetSdkVersion 28 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" // See https://github.com/linkedin/dexmaker/issues/65 for why we need the following line. diff --git a/app/src/main/java/org/kiwix/kiwixmobile/KiwixApplication.java b/app/src/main/java/org/kiwix/kiwixmobile/KiwixApplication.java index 2d9f90a96..a8e91cfde 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/KiwixApplication.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/KiwixApplication.java @@ -32,6 +32,7 @@ import java.io.IOException; import javax.inject.Inject; import org.kiwix.kiwixmobile.di.components.ApplicationComponent; import org.kiwix.kiwixmobile.di.components.DaggerApplicationComponent; +import com.jakewharton.threetenabp.AndroidThreeTen; import org.kiwix.kiwixmobile.di.modules.ApplicationModule; public class KiwixApplication extends MultiDexApplication implements HasActivityInjector { @@ -71,6 +72,7 @@ public class KiwixApplication extends MultiDexApplication implements HasActivity @Override public void onCreate() { super.onCreate(); + AndroidThreeTen.init(this); if (isExternalStorageWritable()) { File appDirectory = new File(Environment.getExternalStorageDirectory() + "/Kiwix"); logFile = new File(appDirectory, "logcat.txt"); diff --git a/app/src/main/java/org/kiwix/kiwixmobile/history/HistoryAdapter.java b/app/src/main/java/org/kiwix/kiwixmobile/history/HistoryAdapter.java index 4d8ade7b1..49a35ed9c 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/history/HistoryAdapter.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/history/HistoryAdapter.java @@ -10,9 +10,11 @@ import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; import butterknife.BindView; import butterknife.ButterKnife; +import org.threeten.bp.LocalDate; import java.util.List; import org.kiwix.kiwixmobile.R; import org.kiwix.kiwixmobile.data.local.entity.History; +import org.threeten.bp.format.DateTimeFormatter; import static org.kiwix.kiwixmobile.library.LibraryAdapter.createBitmapFromEncodedString; @@ -60,7 +62,18 @@ class HistoryAdapter extends RecyclerView.Adapter { item.itemView.setOnLongClickListener(v -> itemClickListener.onItemLongClick(item.favicon, history)); } else { - ((Category) holder).date.setText(historyList.get(position + 1).getDate()); + String date = historyList.get(position + 1).getDate(); + String todaysDate, yesterdayDate; + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM d, yyyy"); + todaysDate = LocalDate.now().format(formatter); + yesterdayDate = LocalDate.now().minusDays(1).format(formatter); + if (todaysDate.contentEquals(date)) { + ((Category) holder).date.setText(R.string.time_today); + } else if (yesterdayDate.contentEquals(date)) { + ((Category) holder).date.setText(R.string.time_yesterday); + } else { + ((Category) holder).date.setText(date); + } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e37d416b7..9e3995720 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -158,6 +158,8 @@ min s left + Today + Yesterday Enable bottom toolbar Display a toolbar with quick actions at the bottom of the screen Automatically switch between day and night mode. diff --git a/kiwixlib/build.gradle b/kiwixlib/build.gradle index e4291b86f..d61c875eb 100644 --- a/kiwixlib/build.gradle +++ b/kiwixlib/build.gradle @@ -4,7 +4,7 @@ android { compileSdkVersion 28 defaultConfig { - minSdkVersion 14 + minSdkVersion 15 targetSdkVersion 28 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" }