From 8b219fb356e89f4d325b3dcafd1d4ee259efe53d Mon Sep 17 00:00:00 2001
From: haifadhila <haifadhila.ilma@gmail.com>
Date: Thu, 21 Mar 2019 10:45:03 +0700
Subject: [PATCH] Added NotifActivity to display notification in RecyclerView

---
 .../wargamobile/android/NotifActivity.java    |  17 +++
 .../com/wargamobile/android/NotifAdapter.java |  88 ++++++++++++++
 .../com/wargamobile/android/Notification.java |  68 +++++++++++
 app/src/main/res/drawable/notif_polling.png   | Bin 0 -> 3715 bytes
 app/src/main/res/drawable/notif_survey.png    | Bin 0 -> 6065 bytes
 .../main/res/layout/notification_items.xml    | 108 ++++++++++++++----
 app/src/main/res/layout/notification_page.xml |   8 +-
 app/src/main/res/values/strings.xml           |   1 +
 8 files changed, 261 insertions(+), 29 deletions(-)
 create mode 100644 app/src/main/java/com/wargamobile/android/NotifAdapter.java
 create mode 100644 app/src/main/java/com/wargamobile/android/Notification.java
 create mode 100644 app/src/main/res/drawable/notif_polling.png
 create mode 100644 app/src/main/res/drawable/notif_survey.png

diff --git a/app/src/main/java/com/wargamobile/android/NotifActivity.java b/app/src/main/java/com/wargamobile/android/NotifActivity.java
index 4c207ff..20f65cc 100644
--- a/app/src/main/java/com/wargamobile/android/NotifActivity.java
+++ b/app/src/main/java/com/wargamobile/android/NotifActivity.java
@@ -2,12 +2,29 @@ package com.wargamobile.android;
 
 import android.os.Bundle;
 import androidx.appcompat.app.AppCompatActivity;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import java.util.ArrayList;
 
 public class NotifActivity extends AppCompatActivity {
 
+  ArrayList<Notification> notifications;
+
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.notification_page);
+
+    RecyclerView rvNotif = (RecyclerView) findViewById(R.id.rv_notifications);
+
+    // Initialize contacts
+    notifications = Notification.createNotificationsList(20);
+    // Create adapter passing in the sample user data
+    NotifAdapter adapter = new NotifAdapter(notifications);
+    // Attach the adapter to the recyclerview to populate items
+    rvNotif.setAdapter(adapter);
+    // Set layout manager to position the items
+    rvNotif.setLayoutManager(new LinearLayoutManager(this));
+    // That's all!
   }
 }
diff --git a/app/src/main/java/com/wargamobile/android/NotifAdapter.java b/app/src/main/java/com/wargamobile/android/NotifAdapter.java
new file mode 100644
index 0000000..497fce7
--- /dev/null
+++ b/app/src/main/java/com/wargamobile/android/NotifAdapter.java
@@ -0,0 +1,88 @@
+package com.wargamobile.android;
+
+import android.content.Context;
+import android.media.Image;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.TextView;
+import androidx.recyclerview.widget.RecyclerView;
+import com.wargamobile.android.Notification;
+import com.wargamobile.android.R;
+import java.util.List;
+
+public class NotifAdapter extends
+    RecyclerView.Adapter<NotifAdapter.ViewHolder> {
+
+  private final int TYPE_SURVEY = 0;
+  private final int TYPE_POLLING = 1;
+
+  public class ViewHolder extends RecyclerView.ViewHolder {
+    public TextView nameTextView;
+    public TextView detailTextView;
+    public ImageView iconImage;
+    public Button isiButton;
+
+    public ViewHolder(View itemView) {
+      super(itemView);
+      nameTextView = (TextView) itemView.findViewById(R.id.notification_name);
+      detailTextView = (TextView) itemView.findViewById(R.id.notification_detail);
+      iconImage = (ImageView) itemView.findViewById(R.id.notif_icon_image);
+      isiButton = (Button) itemView.findViewById(R.id.btn_isi_survey_polling);
+    }
+
+  }
+  // Store a member variable for the contacts
+  private List<Notification> mNotifications;
+
+  // Pass in the contact array into the constructor
+  public NotifAdapter(List<Notification> notifications) {
+    mNotifications = notifications;
+  }
+
+  // Usually involves inflating a layout from XML and returning the holder
+  @Override
+  public NotifAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+    Context context = parent.getContext();
+    LayoutInflater inflater = LayoutInflater.from(context);
+
+    // Inflate the custom layout
+    View contactView = inflater.inflate(R.layout.notification_items, parent, false);
+
+    // Return a new holder instance
+    ViewHolder viewHolder = new ViewHolder(contactView);
+    return viewHolder;
+  }
+
+  // Involves populating data into the item through holder
+  @Override
+  public void onBindViewHolder(NotifAdapter.ViewHolder viewHolder, int position) {
+    // Get the data model based on position
+    Notification notif = mNotifications.get(position);
+
+    // Set item views based on your views and data model
+    TextView nameTextView = viewHolder.nameTextView;
+    TextView detailTextView = viewHolder.detailTextView;
+    ImageView iconImage = viewHolder.iconImage;
+    Button isiButton = viewHolder.isiButton;
+
+    nameTextView.setText(notif.getmName());
+    detailTextView.setText(notif.getmDetail());
+    if (notif.getmType() == TYPE_SURVEY){ // TYPE_SURVEY = 0
+      iconImage.setImageResource(R.drawable.notif_survey);
+    }
+    else if (notif.getmType() == TYPE_POLLING){ // TYPE_POLLING = 1
+      iconImage.setImageResource(R.drawable.notif_polling);
+    }
+    isiButton.setText(notif.isFilled() ? "Terisi" : "Isi");
+    isiButton.setEnabled(!notif.isFilled());
+  }
+
+  // Returns the total count of items in the list
+  @Override
+  public int getItemCount() {
+    return mNotifications.size();
+  }
+}
diff --git a/app/src/main/java/com/wargamobile/android/Notification.java b/app/src/main/java/com/wargamobile/android/Notification.java
new file mode 100644
index 0000000..3c68a39
--- /dev/null
+++ b/app/src/main/java/com/wargamobile/android/Notification.java
@@ -0,0 +1,68 @@
+package com.wargamobile.android;
+
+import java.util.ArrayList;
+
+public class Notification {
+  private String mName;
+  private String mDetail;
+  private int mType;
+  private boolean isFilled; // Whether the survey/polling is filled or not
+
+  public String getmName() {
+    return mName;
+  }
+
+  public void setmName(String mName) {
+    this.mName = mName;
+  }
+
+  public String getmDetail() {
+    return mDetail;
+  }
+
+  public void setmDetail(String mDetail) {
+    this.mDetail = mDetail;
+  }
+
+  public boolean isFilled() {
+    return isFilled;
+  }
+
+  public void setFilled(boolean filled) {
+    isFilled = filled;
+  }
+
+  public int getmType() {
+    return mType;
+  }
+
+  public void setmType(int mType) {
+    this.mType = mType;
+  }
+
+  public static ArrayList<Notification> createNotificationsList(int numNotifications) {
+    ArrayList<Notification> Notifications = new ArrayList<Notification>();
+
+    for (int i = 1; i <= numNotifications; i++) {
+      Notification notif = new Notification();
+      if (i % 2 == 0){
+        notif.setmName("[Polling] - Judul Polling "+i);
+        notif.setmDetail("Some details of the polling");
+        notif.setmType(1);
+      }
+      else{
+        notif.setmName("[Survey] - Judul Survey "+i);
+        notif.setmDetail("Some details of the survey");
+        notif.setmType(0);
+      }
+      if (i % 3 == 0){
+        notif.setFilled(true);
+      }
+      else{
+        notif.setFilled(false);
+      }
+      Notifications.add(notif);
+    }
+    return Notifications;
+  }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/notif_polling.png b/app/src/main/res/drawable/notif_polling.png
new file mode 100644
index 0000000000000000000000000000000000000000..08965a11a2a411816aca8805752f2a5825e68aab
GIT binary patch
literal 3715
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

literal 0
HcmV?d00001

diff --git a/app/src/main/res/drawable/notif_survey.png b/app/src/main/res/drawable/notif_survey.png
new file mode 100644
index 0000000000000000000000000000000000000000..b1ec1938fed2e896f2e82c26bd7c4c8f5cfa2238
GIT binary patch
literal 6065
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

literal 0
HcmV?d00001

diff --git a/app/src/main/res/layout/notification_items.xml b/app/src/main/res/layout/notification_items.xml
index f03d234..0f865c5 100644
--- a/app/src/main/res/layout/notification_items.xml
+++ b/app/src/main/res/layout/notification_items.xml
@@ -1,36 +1,96 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:app="http://schemas.android.com/apk/res-auto"
+  xmlns:tools="http://schemas.android.com/tools"
+  android:id="@+id/linearLayout"
+  android:layout_width="match_parent"
+  android:layout_height="75dp"
+  android:paddingTop="10dp"
+  android:paddingBottom="10dp"
+  android:paddingLeft="10dp"
+  android:paddingRight="10dp"
+  android:orientation="horizontal">
+
+
+  <androidx.constraintlayout.widget.ConstraintLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/notif_layout"
     android:layout_width="match_parent"
-    android:layout_height="75dp">
-
+    android:layout_height="match_parent"
+    >
 
     <ImageView
-        android:id="@+id/imageView"
-        android:layout_width="50dp"
-        android:layout_height="50dp"
-        android:layout_gravity="center_vertical"
+      android:id="@+id/notif_icon_image"
+      android:layout_width="50dp"
+      android:layout_height="50dp"
+      android:adjustViewBounds="false"
+      android:src="@drawable/notif_survey"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintEnd_toStartOf="@id/msg_content_layout"
+      app:layout_constraintStart_toStartOf="parent"
+      app:layout_constraintTop_toTopOf="parent"
+      tools:layout_conversion_absoluteHeight="50dp"
+      tools:layout_conversion_absoluteWidth="50dp"
+      tools:srcCompat="@tools:sample/avatars"/>
+    <LinearLayout
+      android:id="@+id/msg_content_layout"
+      android:layout_width="0dp"
+      android:layout_height="0dp"
+      android:layout_marginTop="8dp"
+      android:orientation="vertical"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintEnd_toStartOf="@id/btn_isi_survey_polling"
+      app:layout_constraintStart_toEndOf="@id/notif_icon_image"
+      app:layout_constraintTop_toTopOf="parent">
+      <TextView
+        android:id="@+id/notification_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingLeft="10dp"
+        android:fontFamily="@font/josefin_sans_bold"
+        android:text="notification_name"
+        android:textAppearance="@style/TextAppearance.AppCompat.Body2"
+        android:textSize="14sp"
+        tools:layout_conversion_absoluteHeight="19dp"
+        tools:layout_conversion_absoluteWidth="260dp"
+        tools:layout_editor_absoluteX="60dp"
+        tools:layout_editor_absoluteY="19dp"/>
+      <TextView
+        android:id="@+id/notification_detail"
+        android:textStyle="bold"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingLeft="10dp"
+        android:fontFamily="@font/josefin_sans_thin"
+        android:text="notification_details"
+        android:textAppearance="@style/TextAppearance.AppCompat.Body1"
+        tools:layout_conversion_absoluteHeight="19dp"
+        tools:layout_conversion_absoluteWidth="260dp"
+        tools:layout_editor_absoluteX="60dp"
+        tools:layout_editor_absoluteY="38dp"/>
+    </LinearLayout>
 
-        tools:srcCompat="@tools:sample/avatars" />
+    <Button
+      android:id="@+id/btn_isi_survey_polling"
+      android:layout_width="100dp"
+      android:layout_height="wrap_content"
+      android:layout_marginTop="8dp"
+      android:padding="@dimen/activity_horizontal_margin"
+      android:paddingLeft="16dp"
+      android:paddingRight="16dp"
+      android:fontFamily="@font/josefin_sans_bold"
+      android:text="@string/isi_survey_polling"
+      android:textAllCaps="false"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintEnd_toEndOf="parent"
+      app:layout_constraintStart_toEndOf="@id/msg_content_layout"
+      app:layout_constraintTop_toTopOf="parent"
+      tools:layout_conversion_absoluteHeight="48dp"
+      tools:layout_conversion_absoluteWidth="82dp"/>
 
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="vertical">
+  </androidx.constraintlayout.widget.ConstraintLayout>
 
-        <TextView
-            android:id="@+id/textView2"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="9dp"
-            android:paddingLeft="10dp"
-            android:text="notification_name" />
 
-        <TextView
-            android:id="@+id/textView3"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingLeft="10dp"
-            android:text="notification_details" /></LinearLayout>
 </LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/notification_page.xml b/app/src/main/res/layout/notification_page.xml
index ccd6350..085e89f 100644
--- a/app/src/main/res/layout/notification_page.xml
+++ b/app/src/main/res/layout/notification_page.xml
@@ -7,11 +7,9 @@
 
 
   <androidx.recyclerview.widget.RecyclerView
-    android:layout_width="395dp"
-    android:layout_height="715dp"
-    android:layout_marginBottom="731dp"
-    android:layout_marginEnd="411dp"
-    android:layout_marginRight="411dp"
+    android:id="@+id/rv_notifications"
+    android:layout_width="0dp"
+    android:layout_height="0dp"
     app:layout_constraintBottom_toBottomOf="parent"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintStart_toStartOf="parent"
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index aeb2c64..f89ba5d 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -23,4 +23,5 @@
   <string name="title_pesan">Pesan</string>
   <string name="title_akun">Akun</string>
   <string name="title_beranda">Beranda</string>
+  <string name="isi_survey_polling">Isi</string>
 </resources>
-- 
GitLab