diff --git a/app/src/main/java/com/github/gotify/messages/ListMessageAdapter.java b/app/src/main/java/com/github/gotify/messages/ListMessageAdapter.java index 02aad06..fd3d97e 100644 --- a/app/src/main/java/com/github/gotify/messages/ListMessageAdapter.java +++ b/app/src/main/java/com/github/gotify/messages/ListMessageAdapter.java @@ -3,6 +3,8 @@ package com.github.gotify.messages; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; +import android.content.SharedPreferences; +import android.text.format.DateUtils; import android.text.util.Linkify; import android.view.LayoutInflater; import android.view.View; @@ -12,6 +14,7 @@ import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; +import androidx.preference.PreferenceManager; import androidx.recyclerview.widget.RecyclerView; import butterknife.BindView; import butterknife.ButterKnife; @@ -26,9 +29,10 @@ import io.noties.markwon.core.CorePlugin; import io.noties.markwon.ext.tables.TablePlugin; import io.noties.markwon.image.picasso.PicassoImagesPlugin; import io.noties.markwon.movement.MovementMethodPlugin; +import java.text.DateFormat; +import java.util.Date; import java.util.List; import org.threeten.bp.OffsetDateTime; -import org.threeten.bp.temporal.ChronoUnit; public class ListMessageAdapter extends RecyclerView.Adapter { @@ -39,6 +43,9 @@ public class ListMessageAdapter extends RecyclerView.Adapter getItems() { @@ -94,8 +105,10 @@ public class ListMessageAdapter extends RecyclerView.Adapter holder.switchPreciseDate()); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + String timeFormat = prefs.getString(TIME_FORMAT_PREFS_KEY, TIME_FORMAT_RELATIVE); + holder.setDateTime(message.message.getDate(), timeFormat.equals(TIME_FORMAT_RELATIVE)); + holder.date.setOnClickListener((ignored) -> holder.switchTimeFormat()); holder.delete.setOnClickListener( (ignored) -> delete.delete(holder.getAdapterPosition(), message.message, false)); @@ -128,35 +141,45 @@ public class ListMessageAdapter extends RecyclerView.Adapter targetReferences = new ArrayList<>(); @@ -150,7 +152,7 @@ public class MessagesActivity extends AppCompatActivity DividerItemDecoration dividerItemDecoration = new DividerItemDecoration( messagesView.getContext(), layoutManager.getOrientation()); - ListMessageAdapter adapter = + listMessageAdapter = new ListMessageAdapter( this, settings, picassoHandler.get(), emptyList(), this::scheduleDeletion); @@ -158,9 +160,10 @@ public class MessagesActivity extends AppCompatActivity messagesView.setHasFixedSize(true); messagesView.setLayoutManager(layoutManager); messagesView.addOnScrollListener(new MessageListOnScrollListener()); - messagesView.setAdapter(adapter); + messagesView.setAdapter(listMessageAdapter); - ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new SwipeToDeleteCallback(adapter)); + ItemTouchHelper itemTouchHelper = + new ItemTouchHelper(new SwipeToDeleteCallback(listMessageAdapter)); itemTouchHelper.attachToRecyclerView(messagesView); swipeRefreshLayout.setOnRefreshListener(this::onRefresh); @@ -357,6 +360,8 @@ public class MessagesActivity extends AppCompatActivity } } + listMessageAdapter.notifyDataSetChanged(); + navigationView.getMenu().findItem(selectedIndex).setChecked(true); super.onResume(); } diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 888606a..3a9d936 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -1,4 +1,5 @@ + @string/theme_light @string/theme_dark @@ -7,4 +8,17 @@ Light Dark System Default + + + @string/time_format_entry_absolute + @string/time_format_entry_relative + + Absolute time + Relative time + + @string/time_format_value_absolute + @string/time_format_value_relative + + time_format_absolute + time_format_relative diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5b07d3d..046f20b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -72,6 +72,8 @@ Appearance Theme theme + Time format + time_format Push message App: Priority: diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml index 0ff1dbe..ec2273d 100644 --- a/app/src/main/res/xml/root_preferences.xml +++ b/app/src/main/res/xml/root_preferences.xml @@ -8,6 +8,13 @@ android:entryValues="@array/mode" android:key="@string/setting_key_theme" android:title="@string/setting_theme" /> + +