From 821415d7207a524fd9b899471ee6b4179d6bf263 Mon Sep 17 00:00:00 2001 From: amaa-99 <-> Date: Fri, 22 Sep 2023 11:59:58 +0200 Subject: [PATCH] * [Issue #18] The date/time formatting is not consistent across all views. Corrected the date/time format in the details view (e.g. 19:00 would get displayed as '7:00'). Changed the detail view to not show the host name field in case the host name is not known. --- .../ufirewall/activity/LogDetailActivity.java | 2 +- .../log/LogDetailRecyclerViewAdapter.java | 29 ++++++++++++------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/dev/ukanth/ufirewall/activity/LogDetailActivity.java b/app/src/main/java/dev/ukanth/ufirewall/activity/LogDetailActivity.java index e48642fa..6fe905dd 100644 --- a/app/src/main/java/dev/ukanth/ufirewall/activity/LogDetailActivity.java +++ b/app/src/main/java/dev/ukanth/ufirewall/activity/LogDetailActivity.java @@ -295,7 +295,7 @@ protected Boolean doInBackground(Void... params) { return false; } } catch (Exception e) { - Log.e(Api.TAG, "Exception while retrieving data" + e.getLocalizedMessage()); + Log.e(Api.TAG, "Exception while retrieving data" + e.getLocalizedMessage()); return null; } diff --git a/app/src/main/java/dev/ukanth/ufirewall/log/LogDetailRecyclerViewAdapter.java b/app/src/main/java/dev/ukanth/ufirewall/log/LogDetailRecyclerViewAdapter.java index 0eb19009..dabd6d61 100644 --- a/app/src/main/java/dev/ukanth/ufirewall/log/LogDetailRecyclerViewAdapter.java +++ b/app/src/main/java/dev/ukanth/ufirewall/log/LogDetailRecyclerViewAdapter.java @@ -10,6 +10,7 @@ import androidx.recyclerview.widget.RecyclerView; import java.util.ArrayList; +import java.util.Calendar; import java.util.List; import dev.ukanth.ufirewall.R; @@ -47,24 +48,31 @@ public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { public void onBindViewHolder(ViewHolder holder, int position) { data = logData.get(position); if (data != null) { - holder.bind(logData.get(position), recyclerItemClickListener); - if(data.getOut() != null) { - holder.deniedTime.setText(pretty(data.getTimestamp()) + "(" + data.getOut() + ")"); - if((data.getOut().contains("lan") || data.getOut().startsWith("eth") || data.getOut().startsWith("ra") || data.getOut().startsWith("bnep"))) { + holder.bind(data, recyclerItemClickListener); + if (data.getOut() != null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(data.getTimestamp()); + java.text.DateFormat dateFormat = java.text.DateFormat.getDateTimeInstance(java.text.DateFormat.SHORT, java.text.DateFormat.SHORT); + String dateTime = dateFormat.format(calendar.getTime()); + holder.deniedTime.setText(dateTime + " (" + data.getOut() + ")"); + if ((data.getOut().contains("lan") || data.getOut().startsWith("eth") || data.getOut().startsWith("ra") || data.getOut().startsWith("bnep"))) { holder.icon.setImageDrawable(context.getResources().getDrawable(R.drawable.ic_wifi)); - } else{ + } else { holder.icon.setImageDrawable(context.getResources().getDrawable(R.drawable.ic_mobiledata)); } } + holder.dataDest.setText(context.getResources().getString(R.string.log_dst) + data.getDst() + ":" + data.getDpt()); holder.dataSrc.setText(context.getResources().getString(R.string.log_src) + data.getSrc() + ":" + data.getSpt()); holder.dataProto.setText(context.getResources().getString(R.string.log_proto) + data.getProto()); - holder.dataHost.setText(context.getResources().getString(R.string.host) + data.getHostname()); - } - } - public static String pretty(Long timestamp) { - return android.text.format.DateFormat.format("dd-MM-yyyy hh:mm:ss", new java.util.Date(timestamp)).toString(); + String hostName = data.getHostname(); + if (!hostName.isEmpty()) { + holder.dataHost.setText(context.getResources().getString(R.string.host) + hostName); + } else { + holder.dataHost.setVisibility(View.GONE); + } + } } @Override @@ -72,7 +80,6 @@ public int getItemCount() { return logData.size(); } - public static class ViewHolder extends RecyclerView.ViewHolder { final ImageView icon;