Commit 0f9531d2 authored by Wahyu Wibowo's avatar Wahyu Wibowo

new updated

parent f193e02d
package com.example.yourcashiertest.activities;
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager;
import android.os.Bundle;
import com.example.yourcashiertest.R;
import com.example.yourcashiertest.adapters.OrderAdapter;
import com.example.yourcashiertest.databinding.ActivityOrderBinding;
import com.example.yourcashiertest.entities.Transaksi;
import com.example.yourcashiertest.viewmodels.TransaksiViewModel;
import java.util.List;
public class OrderActivity extends AppCompatActivity {
ActivityOrderBinding binding;
OrderAdapter adapter;
TransaksiViewModel viewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_order);
binding = DataBindingUtil.setContentView(this, R.layout.activity_order);
viewModel = new ViewModelProvider(this).get(TransaksiViewModel.class);
binding.rvListOrder.setLayoutManager(new LinearLayoutManager(this));
binding.rvListOrder.setAdapter(adapter);
viewModel.getList().observe(this, transaksi -> adapter.setTransaksiList(transaksi));
adapter.setListener(new OrderAdapter.TransaksiListener() {
@Override
public void onCancel(Transaksi transaksi) {
}
@Override
public void onContinue(Transaksi transaksi) {
}
});
}
}
\ No newline at end of file
package com.example.yourcashiertest.adapters;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.RecyclerView;
import com.example.yourcashiertest.R;
import com.example.yourcashiertest.databinding.ItemOrderBinding;
import com.example.yourcashiertest.entities.Transaksi;
import com.example.yourcashiertest.utils.Convert;
import com.example.yourcashiertest.utils.ViewUtil;
import java.util.ArrayList;
import java.util.List;
public class OrderAdapter extends RecyclerView.Adapter<OrderAdapter.ViewHolder> {
public List<Transaksi> transaksis = new ArrayList<>();
private List<Transaksi> transaksiList = new ArrayList<>();
public interface TransaksiListener{
void onCancel(Transaksi transaksi);
void onContinue(Transaksi transaksi);
}
private TransaksiListener listener;
public void setListener(TransaksiListener listener) {
this.listener = listener;
}
public void setTransaksiList(List<Transaksi> transaksiList) {
this.transaksiList = transaksiList;
notifyDataSetChanged();
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return null;
return new OrderAdapter.ViewHolder(
DataBindingUtil.inflate(
LayoutInflater.from(parent.getContext()),
R.layout.item_order,
parent,
false
)
);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.bindData(transaksiList.get(position), listener);
}
@Override
public int getItemCount() {
return 0;
return transaksiList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public ViewHolder(@NonNull View itemView) {
super(itemView);
private ItemOrderBinding binding;
public ViewHolder(@NonNull ItemOrderBinding binding) {
super(binding.getRoot());
this.binding = binding;
}
public void bindData(Transaksi transaksi, TransaksiListener listener){
binding.setTransaction(transaksi);
binding.setAmount(Convert.changeToCurrency(transaksi.getAmount()));
binding.btnCancel.setOnClickListener(view -> listener.onCancel(transaksi));
binding.btnContinue.setOnClickListener(view -> listener.onContinue(transaksi));
}
}
}
package com.example.yourcashiertest.daos;
import androidx.lifecycle.LiveData;
import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
......@@ -14,7 +15,7 @@ import java.util.List;
@Dao
public interface TransaksiDao {
@Query("SELECT * FROM Transaksi")
public List<Transaksi> getAll();
public LiveData<List<Transaksi>> getAll();
@Insert(onConflict = OnConflictStrategy.IGNORE)
public void insertTransaksi(Transaksi transaksi);
......
......@@ -3,6 +3,8 @@ package com.example.yourcashiertest.repositories;
import android.app.Application;
import androidx.lifecycle.LiveData;
import com.example.yourcashiertest.daos.TransaksiDao;
import com.example.yourcashiertest.databases.LocalDatabase;
import com.example.yourcashiertest.entities.Transaksi;
......@@ -11,7 +13,7 @@ import java.util.List;
public class TransaksiRepository {
private TransaksiDao dao;
private List<Transaksi> allTransaksi;
private LiveData<List<Transaksi>> allTransaksi;
public TransaksiRepository(Application application){
LocalDatabase db = LocalDatabase.getDatabase(application);
......@@ -19,7 +21,7 @@ public class TransaksiRepository {
allTransaksi = dao.getAll();
}
public List<Transaksi> getAllTransaksi(){
public LiveData<List<Transaksi>> getAllTransaksi(){
return this.allTransaksi;
}
......
......@@ -5,13 +5,15 @@ import android.app.Application;
import androidx.annotation.NonNull;
import androidx.lifecycle.AndroidViewModel;
import androidx.lifecycle.LiveData;
import com.example.yourcashiertest.entities.Transaksi;
import com.example.yourcashiertest.repositories.TransaksiRepository;
import java.util.List;
public class TransaksiViewModel extends AndroidViewModel {
private List<Transaksi> list;
private LiveData<List<Transaksi>> list;
private TransaksiRepository repository;
public TransaksiViewModel(@NonNull Application application) {
......@@ -20,7 +22,7 @@ public class TransaksiViewModel extends AndroidViewModel {
list = repository.getAllTransaksi();
}
public List<Transaksi> getList() {
public LiveData<List<Transaksi>> getList() {
return list;
}
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="8dp"
tools:context=".activities.OrderActivity">
<TextView
android:id="@+id/tvListOrder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="top"
android:layout_marginBottom="4dp"
android:text="TRANSACTION LIST"
android:textAppearance="@style/payment"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.105" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnPending"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:text="PENDING"
android:textSize="10dp"
android:backgroundTint="@color/colorPending"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvListOrder"
app:layout_constraintBottom_toTopOf="@id/rvListOrder"
tools:layout_editor_absoluteX="16dp"
tools:layout_editor_absoluteY="654dp" />
xmlns:tools="http://schemas.android.com/tools">
<com.google.android.material.button.MaterialButton
android:id="@+id/btnSuccess"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_marginEnd="4dp"
android:text="SUCCESS"
android:textSize="10dp"
app:layout_constraintBottom_toTopOf="@id/rvListOrder"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvListOrder"
app:layout_constraintVertical_bias="0.0" />
<data>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvListOrder"
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:padding="@dimen/space_small"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btnPending"
tools:listitem="@layout/item_order" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
android:layout_height="match_parent"
android:padding="8dp"
tools:context=".activities.OrderActivity">
<TextView
android:id="@+id/tvListOrder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="top"
android:layout_marginBottom="4dp"
android:text="TRANSACTION LIST"
android:textAppearance="@style/payment"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.105" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnPending"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:text="PENDING"
android:textSize="10dp"
android:backgroundTint="@color/colorPending"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvListOrder"
app:layout_constraintBottom_toTopOf="@id/rvListOrder"
tools:layout_editor_absoluteX="16dp"
tools:layout_editor_absoluteY="654dp" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnSuccess"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_marginEnd="4dp"
android:text="SUCCESS"
android:textSize="10dp"
app:layout_constraintBottom_toTopOf="@id/rvListOrder"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvListOrder"
app:layout_constraintVertical_bias="0.0" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvListOrder"
android:layout_width="match_parent"
android:layout_height="0dp"
android:padding="@dimen/space_small"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btnPending"
tools:listitem="@layout/item_order" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
......@@ -5,15 +5,11 @@
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="cartProduct"
type="com.example.yourcashiertest.entities.Cart" />
name="transaction"
type="com.example.yourcashiertest.entities.Transaksi" />
<variable
name="qty"
type="String" />
<variable
name="price"
name="amount"
type="String" />
</data>
......@@ -47,6 +43,7 @@
android:id="@+id/tvOrderId"
android:layout_width="250dp"
android:layout_height="41dp"
android:text="@{transaction.orderId + ``}"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginStart="4dp"
......@@ -54,8 +51,7 @@
android:textAppearance="@style/some_id"
app:layout_constraintStart_toEndOf="@id/tvOrderNumber"
app:layout_constraintTop_toTopOf="parent"
tools:layout_editor_absoluteX="169dp"
tools:text="@{price}" />
tools:layout_editor_absoluteX="169dp" />
<TextView
android:id="@+id/tvTotal"
......@@ -74,6 +70,7 @@
android:id="@+id/tvAmount"
android:layout_width="250dp"
android:layout_height="41dp"
android:text="@{amount}"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginStart="4dp"
......@@ -81,8 +78,7 @@
android:textAppearance="@style/some_id"
app:layout_constraintStart_toEndOf="@id/tvTotal"
app:layout_constraintTop_toBottomOf="@id/tvOrderId"
tools:layout_editor_absoluteX="169dp"
tools:text="@{price}"/>
tools:layout_editor_absoluteX="169dp"/>
<TextView
android:id="@+id/tvStatus"
......@@ -91,11 +87,10 @@
android:layout_marginStart="4dp"
android:layout_marginTop="4dp"
android:gravity="center"
android:text="@{}"
android:text="@{transaction.status}"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvTotal"
tools:text="Success" />
app:layout_constraintTop_toBottomOf="@+id/tvTotal" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnContinue"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment