Commit 5b669715 authored by Muhammad Suryono's avatar Muhammad Suryono

Merge branch 'cart' into dev

parents dbdfc6c5 22bec9ae
......@@ -61,5 +61,6 @@ dependencies {
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'androidmads.library.qrgenearator:QRGenearator:1.0.4'
implementation 'com.google.zxing:core:3.3.2'
implementation 'com.github.florent37:expansionpanel:1.2.4'
}
\ No newline at end of file
......@@ -38,9 +38,6 @@
<activity
android:name=".CartActivity"
android:theme="@style/AppTheme.appbar" />
<activity
android:name=".ProductActivity"
android:theme="@style/AppTheme.appbar" />
<activity android:name=".SplashScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
......
......@@ -32,16 +32,17 @@ import com.yono.messeripos.utils.Utils;
public class LoginActivity extends AppCompatActivity {
TextInputEditText username, password;
MaterialButton btnLogin;
MainViewModels mainViewModels;
ProgressBar progressBar;
SharedPreferences sharedPreferences;
Utils utils = new Utils();
//State
LoginState loginState;
RegisterState registerState;
MaterialButton btnSignin;
MaterialButton btnSignup, btnSignIn;
ConstraintLayout loginSheetLayout, registerSheetLayout;
BottomSheetBehavior sheetBehavior,sheetBehavior2;
int height, width;
ImageButton closeBtn;
......@@ -50,7 +51,7 @@ public class LoginActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dashboard_login);
setContentView(R.layout.payment_method);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window w = getWindow();
......@@ -58,98 +59,41 @@ public class LoginActivity extends AppCompatActivity {
}
mainViewModels = ViewModelProviders.of(this).get(MainViewModels.class);
// bindUI
// get window height
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
height = displayMetrics.heightPixels;
width = displayMetrics.widthPixels;
// get bottom sheets
sheetBehavior = BottomSheetBehavior.from(loginSheetLayout);
sheetBehavior2 = BottomSheetBehavior.from(registerSheetLayout);
// button on click to form login
btnSignIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (sheetBehavior.getState() != BottomSheetBehavior.STATE_EXPANDED) {
sheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
loginSheetLayout.setMaxHeight(height - 100);
} else {
sheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}
}
});
// registerSheetLayout = findViewById(R.id.ConstraintRegisterLayout);
// sheetBehavior2 = BottomSheetBehavior.from(registerSheetLayout);
//button on click to form register
btnSignup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (sheetBehavior2.getState() != BottomSheetBehavior.STATE_EXPANDED) {
sheetBehavior2.setState(BottomSheetBehavior.STATE_EXPANDED);
registerSheetLayout.setMaxHeight(height - 100);
} else {
sheetBehavior2.setState(BottomSheetBehavior.STATE_COLLAPSED);
}
}
});
// btnSignup.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// if (sheetBehavior2.getState() != BottomSheetBehavior.STATE_EXPANDED) {
// sheetBehavior2.setState(BottomSheetBehavior.STATE_EXPANDED);
// registerSheetLayout.setMaxHeight(height - 100);
// } else {
// sheetBehavior2.setState(BottomSheetBehavior.STATE_COLLAPSED);
// }
// }
// });
// bindUI
btnSignIn = findViewById(R.id.signInButtonDashboardLogin);
btnSignup = findViewById(R.id.signUpButtonDashboardLogin);
// //button on click to form register
// btnSignup.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// if (sheetBehavior2.getState() != BottomSheetBehavior.STATE_EXPANDED) {
// sheetBehavior2.setState(BottomSheetBehavior.STATE_EXPANDED);
// registerSheetLayout.setMaxHeight(height - 100);
// } else {
// sheetBehavior2.setState(BottomSheetBehavior.STATE_COLLAPSED);
// }
// }
// });
/*
* LOGIN LOGIKA DIBAWAH INI
* */
//<<<<<<< HEAD
// public void onClick(View v) {
// Snackbar snackbar = Snackbar.make(v, "Oppss! Wrong Username Or Password!", Snackbar.LENGTH_LONG);
//
// if (TextUtils.isEmpty(username.getText().toString()) &&
// TextUtils.isEmpty(password.getText().toString())){
// username.setError("This field can't empty");
// password.setError("This field can't empty");
// }else if (TextUtils.isEmpty(username.getText().toString())){
// username.setError("This field can't empty");
// }else if (TextUtils.isEmpty(password.getText().toString())){
// password.setError("This field can't empty");
// }else{
// progressBar.setVisibility(View.VISIBLE);
// username.setEnabled(false);
// password.setEnabled(false);
// btnLogin.setEnabled(false);
//
// mainViewModels.checkLogin(new UsersModels(username.getText().toString(),
// password.getText().toString())).observe(LoginActivity.this, new Observer<DataResponse<UsersModels>>() {
// @Override
// public void onChanged(DataResponse<UsersModels> usersModelsDataResponse) {
// Log.d("Status", usersModelsDataResponse.getMessageData());
//
// if (usersModelsDataResponse != null){
// if (usersModelsDataResponse.getStatusData()){
// SharedPreferences.Editor editor = sharedPreferences.edit();
// editor.putBoolean(SplashScreen.SESSION, true);
// editor.commit();
//
// startActivity(new Intent(LoginActivity.this, MainActivity.class));
//
// progressBar.setVisibility(View.GONE);
// username.setEnabled(true);
// password.setEnabled(true);
// btnLogin.setEnabled(true);
// }else {
// utils.snackBar(v,"Oppss! Wrong Username Or Password!").show();
// progressBar.setVisibility(View.GONE);
// username.setEnabled(true);
// password.setEnabled(true);
// btnLogin.setEnabled(true);
// }
// }else{
// utils.snackBar(v, "Oppss! ログイン中にエラーが発生しました。しばらくしてからもう一度お試しください").show();
// }
//
// }
// });
//=======
// session login
sharedPreferences = getSharedPreferences(SplashScreen.MY_SHARED_PREFERENCES, Context.MODE_PRIVATE);
......@@ -158,9 +102,18 @@ public class LoginActivity extends AppCompatActivity {
@Override
public void onClick(View v) {
loginState = new LoginState(LoginActivity.this, mainViewModels);
loginState.setCancelable(false);
loginState.show(getSupportFragmentManager(), loginState.getTag());
}
});
btnSignup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
registerState = new RegisterState(LoginActivity.this,mainViewModels);
registerState.setCancelable(false);
registerState.show(getSupportFragmentManager(),registerState.getTag());
}
});
}
}
package com.yono.messeripos;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources;
......@@ -11,10 +13,12 @@ import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.Observer;
......@@ -23,6 +27,7 @@ import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.snackbar.Snackbar;
import com.google.android.material.textfield.TextInputEditText;
import com.yono.messeripos.models.MainViewModels;
......@@ -33,6 +38,7 @@ import com.yono.messeripos.utils.Utils;
public class LoginState extends BottomSheetDialogFragment {
private static final String TAG = "LoginState";
private static String DEFAULT_LOGIN_NAME = "sign in";
BottomSheetBehavior sheetBehavior;
BottomSheetDialog sheetDialog;
RelativeLayout loginLayout;
......@@ -43,6 +49,10 @@ public class LoginState extends BottomSheetDialogFragment {
MainViewModels mainViewModels;
SharedPreferences sharedPreferences;
Utils utils;
ProgressBar bar;
AlertDialog alertDialog;
ProgressDialog dialog;
public LoginState(Context context, MainViewModels mainViewModels) {
this.context = context;
......@@ -56,6 +66,8 @@ public class LoginState extends BottomSheetDialogFragment {
sheetDialog = (BottomSheetDialog) super.onCreateDialog(savedInstanceState);
dialog = new ProgressDialog(context);
// inflating layout
View view = View.inflate(getContext(), R.layout.login_form, null);
......@@ -65,6 +77,10 @@ public class LoginState extends BottomSheetDialogFragment {
password = view.findViewById(R.id.ETPasswordLogin);
loginButton = view.findViewById(R.id.SignInButtonInLogin);
closeBtn = view.findViewById(R.id.closeBtnLogin);
bar = view.findViewById(R.id.progressLogin);
// set progress bar gone
bar.setVisibility(View.GONE);
// create session
sharedPreferences = context.getSharedPreferences(SplashScreen.MY_SHARED_PREFERENCES, Context.MODE_PRIVATE);
......@@ -78,16 +94,28 @@ public class LoginState extends BottomSheetDialogFragment {
// get Window size
int getHeight = Resources.getSystem().getDisplayMetrics().heightPixels;
int setHeight = getHeight - (getHeight * 10) / 100;
int setHeight = getHeight - (getHeight * 5) / 100;
// set max height
sheetBehavior.setPeekHeight(setHeight);
loginLayout.setMinimumHeight(setHeight);
Log.d(TAG, "onCreateDialog: "+sheetBehavior.getState());
// alert dialog buat nampilin error
alertDialog = new AlertDialog.Builder(context)
.setTitle("Username dan Password Salah")
.setMessage("Oppss! Username dan Password yang kamu masukan salah!")
.setPositiveButton("Coba Lagi", null)
.setCancelable(false)
.create();
loginButton.setOnClickListener(view1 -> {
if (sheetBehavior.getState() != BottomSheetBehavior.STATE_EXPANDED) loginAuth(view1);
if (sheetBehavior.getState() != BottomSheetBehavior.STATE_EXPANDED) {
bar.setVisibility(View.VISIBLE);
loginButton.setText("");
sheetDialog.setCancelable(false);
loginAuth(view1);
}
});
// close btn is clicked
......@@ -100,7 +128,6 @@ public class LoginState extends BottomSheetDialogFragment {
}
private void loginAuth(View v) {
Snackbar snackbar = Snackbar.make(v, "Oppss! Wrong Username Or Password!", Snackbar.LENGTH_LONG);
if (TextUtils.isEmpty(username.getText().toString()) &&
TextUtils.isEmpty(password.getText().toString())){
......@@ -111,37 +138,73 @@ public class LoginState extends BottomSheetDialogFragment {
}else if (TextUtils.isEmpty(password.getText().toString())){
password.setError("This field can't empty");
}else{
/**
* Jika tombol sign in ditekan
*/
// aktifkan progress bar
bar.setVisibility(View.VISIBLE);
// hilangkan tulisan di button
loginButton.setText("");
// nonaktifkan semua form
username.setEnabled(false);
password.setEnabled(false);
loginButton.setEnabled(false);
closeBtn.setEnabled(false);
// buat checking login
mainViewModels.checkLogin(new UsersModels(username.getText().toString(),
password.getText().toString())).observe((LifecycleOwner) context, new Observer<DataResponse<UsersModels>>() {
password.getText().toString()))
.observe((LifecycleOwner) context, new Observer<DataResponse<UsersModels>>() {
@Override
public void onChanged(DataResponse<UsersModels> usersModelsDataResponse) {
Log.d("Status", usersModelsDataResponse.getMessageData());
if (usersModelsDataResponse != null) {
/**
* Jika response atau data ada dan cocok
*/
if (usersModelsDataResponse.getStatusData()) {
// SharedPreferences.Editor editor = sharedPreferences.edit();
// editor.putBoolean(SplashScreen.SESSION, true);
// editor.commit();
// redirect ke home
startActivity(new Intent(context, MainActivity.class));
// set progress bar jadi nonaktif
bar.setVisibility(View.GONE);
// munculkan tulisan default di button sign in
loginButton.setText(DEFAULT_LOGIN_NAME);
// ubah sheet dialog jadi tidak bisa di slide atau cancel
sheetDialog.setCancelable(true);
// set form jadi enable
username.setEnabled(true);
password.setEnabled(true);
loginButton.setEnabled(true);
closeBtn.setEnabled(true);
} else {
utils.snackBar(v, "Oppss! Wrong Username Or Password!").show();
/**
* Jika response atau data tidak cocok
*/
bar.setVisibility(View.GONE);
loginButton.setText(DEFAULT_LOGIN_NAME);
sheetDialog.setCancelable(true);
utils.snackBar(v, "Oppss! Wrong Username or Password!").show();
username.setEnabled(true);
password.setEnabled(true);
loginButton.setEnabled(true);
closeBtn.setEnabled(true);
}
} else {
bar.setVisibility(View.VISIBLE);
utils.snackBar(v, "Oppss! ログイン中にエラーが発生しました。しばらくしてからもう一度お試しください").show();
}
......
package com.yono.messeripos;
import android.app.Dialog;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.textfield.TextInputEditText;
import com.yono.messeripos.models.MainViewModels;
import com.yono.messeripos.utils.Utils;
public class RegisterState extends BottomSheetDialogFragment {
private static final String TAG = "RegisterState";
BottomSheetBehavior sheetBehavior2;
BottomSheetDialog sheetDialog2;
RelativeLayout registerLayout;
TextInputEditText username, email, password, repassword;
MaterialButton registerButton;
ImageView closeBtn;
Context context;
MainViewModels mainViewModels;
SharedPreferences sharedPreferences;
Utils utils;
public RegisterState(Context context, MainViewModels mainViewModels) {
this.context = context;
this.mainViewModels = mainViewModels;
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
sheetDialog2 = (BottomSheetDialog) super.onCreateDialog(savedInstanceState);
// inflating layout
View view = View.inflate(getContext(), R.layout.register_form, null);
// bindUI
registerLayout = view.findViewById(R.id.RegisterLayout);
username = view.findViewById(R.id.ETUsernameReg);
email = view.findViewById(R.id.ETEmailReg);
password = view.findViewById(R.id.ETPasswordReg);
repassword = view.findViewById(R.id.ETRePasswordReg);
registerButton = view.findViewById(R.id.MBRegister);
closeBtn = view.findViewById(R.id.ivclose);
// create session
sharedPreferences = context.getSharedPreferences(SplashScreen.MY_SHARED_PREFERENCES, Context.MODE_PRIVATE);
// utils
utils = new Utils();
sheetDialog2.setContentView(view);
sheetBehavior2 = BottomSheetBehavior.from((View) (view.getParent()));
// get Window size
int getHeight = Resources.getSystem().getDisplayMetrics().heightPixels;
int setHeight = getHeight - (getHeight * 5) / 100;
// set max height
sheetBehavior2.setPeekHeight(setHeight);
registerLayout.setMinimumHeight(setHeight);
Log.d(TAG, "onCreateDialog: " + sheetBehavior2.getState());
// loginButton.setOnClickListener(view1 -> {
// if (sheetBehavior.getState() != BottomSheetBehavior.STATE_EXPANDED) loginAuth(view1);
// });
// close btn is clicked
closeBtn.setOnClickListener(view12 -> {
Log.d(TAG, "onCreateDialog: " + sheetBehavior2.getState());
sheetDialog2.dismiss();
});
return sheetDialog2;
}
}
......@@ -11,4 +11,7 @@ import retrofit2.http.POST;
public interface UsersService {
@POST(ApiHelper.VERSI_API_1+"login")
Call<DataResponse<UsersModels>> checkLogin(@Body UsersModels usersModels);
@POST(ApiHelper.VERSI_API_1+"register")
Call<DataResponse<UsersModels>> postRegister(@Body UsersModels usersModels);
}
......@@ -29,6 +29,8 @@ public class MainViewModels extends ViewModel {
MutableLiveData<DataResponse<List<ProductModels>>> productByCategory;
MutableLiveData<DataResponse<List<CategoryModels>>> categoryList;
MutableLiveData<DataResponse<UsersModels>> usersLogin;
MutableLiveData<DataResponse<UsersModels>> usersRegister;
MutableLiveData<DataResponse<List<PaymentsModels<String>>>> transactions;
private MainViewModels mainViewModels;
......@@ -36,7 +38,7 @@ public class MainViewModels extends ViewModel {
Client client = new Client();
Utils utils = new Utils();
public MainViewModels(){
public MainViewModels() {
productList = new MutableLiveData<>();
categoryList = new MutableLiveData<>();
productByCategory = new MutableLiveData<>();
......@@ -44,26 +46,26 @@ public class MainViewModels extends ViewModel {
}
public LiveData<DataResponse<List<ProductModels<CategoryModels>>>> getProduct(){
public LiveData<DataResponse<List<ProductModels<CategoryModels>>>> getProduct() {
getProductList();
return productList;
}
public LiveData<DataResponse<List<CategoryModels>>> getCategory(){
public LiveData<DataResponse<List<CategoryModels>>> getCategory() {
getCategoryList();
return categoryList;
}
public void postCategory(CategoryModels categoryModels){
public void postCategory(CategoryModels categoryModels) {
saveCategory(categoryModels);
}
public LiveData<DataResponse<List<ProductModels>>> getProductByCategory(int id){
public LiveData<DataResponse<List<ProductModels>>> getProductByCategory(int id) {
getDataProductByCategory(id);
return productByCategory;
}
public LiveData<DataResponse<List<PaymentsModels<String>>>> getAllTransactions(){
public LiveData<DataResponse<List<PaymentsModels<String>>>> getAllTransactions() {
getDataTransaction();
return transactions;
}
......@@ -74,27 +76,27 @@ public class MainViewModels extends ViewModel {
categoryServise.addCategory(categoryModels).enqueue(new Callback<DataResponse<CategoryModels>>() {
@Override
public void onResponse(Call<DataResponse<CategoryModels>> call, Response<DataResponse<CategoryModels>> response) {
Log.i("Add Categiry", "onResponse: "+utils.convertGson(response.body()));
Log.i("Add Categiry", "onResponse: " + utils.convertGson(response.body()));
}
@Override
public void onFailure(Call<DataResponse<CategoryModels>> call, Throwable t) {
Log.e("error add", "onFailure: ",t );
Log.e("error add", "onFailure: ", t);
}
});
}
public void deleteProducts(int id){
public void deleteProducts(int id) {
ProductService productService = client.Client(ProductService.class);
productService.deleteProducts(id).enqueue(new Callback<DataResponse<ProductModels>>() {
@Override
public void onResponse(Call<DataResponse<ProductModels>> call, Response<DataResponse<ProductModels>> response) {
Log.i("Delete", "onResponse: "+utils.convertGson(response.body()));
Log.i("Delete", "onResponse: " + utils.convertGson(response.body()));
}
@Override
public void onFailure(Call<DataResponse<ProductModels>> call, Throwable t) {
Log.e("error delete", "onFailure: ",t );
Log.e("error delete", "onFailure: ", t);
}
});
}
......@@ -106,17 +108,17 @@ public class MainViewModels extends ViewModel {
@Override
public void onResponse(Call<DataResponse<List<PaymentsModels<String>>>> call,
Response<DataResponse<List<PaymentsModels<String>>>> response) {
Log.i("Get all transaction", "onResponse: "+utils.convertGson(response.body()));
if (response.body() != null){
Log.i("Get all transaction", "onResponse: " + utils.convertGson(response.body()));
if (response.body() != null) {
transactions.setValue(response.body());
}else{
} else {
transactions = null;
}
}
@Override
public void onFailure(Call<DataResponse<List<PaymentsModels<String>>>> call, Throwable t) {
Log.e("Error get transaction", "onFailure: ",t );
Log.e("Error get transaction", "onFailure: ", t);
transactions = null;
}
});
......@@ -130,8 +132,8 @@ public class MainViewModels extends ViewModel {
public void onResponse(Call<DataResponse<List<ProductModels>>> call,
Response<DataResponse<List<ProductModels>>> response) {
String js = new Gson().toJson(response.body());
Log.i("Get data by category", "onResponse: "+js);
if (response != null){
Log.i("Get data by category", "onResponse: " + js);
if (response != null) {
productByCategory.setValue(response.body());
}
}
......@@ -143,28 +145,53 @@ public class MainViewModels extends ViewModel {
});
}
public MutableLiveData<DataResponse<UsersModels>> checkLogin(UsersModels usersModels){
public MutableLiveData<DataResponse<UsersModels>> checkLogin(UsersModels usersModels) {
usersLogin = new MutableLiveData<>();
PeriksaLogin(usersModels);
return usersLogin;
}
public MutableLiveData<DataResponse<UsersModels>> checkRegis(UsersModels usersModels){
usersRegister = new MutableLiveData<>();
CreateRegister(usersModels);
return usersRegister;
}
private void PeriksaLogin(UsersModels usersModels) {
UsersService usersService = client.Client(UsersService.class);
//cek login
usersService.checkLogin(usersModels).enqueue(new Callback<DataResponse<UsersModels>>() {
@Override
public void onResponse(Call<DataResponse<UsersModels>> call, Response<DataResponse<UsersModels>> response) {
if (response.body() != null){
if (response.body() != null) {
usersLogin.setValue(response.body());
}
String js = new Gson().toJson(response.body());
Log.d("Periksa login", "Response "+js);
Log.d("Periksa login", "Response " + js);
}
@Override
public void onFailure(Call<DataResponse<UsersModels>> call, Throwable t) {
Log.e("Error Login", "Response " + t.getMessage());
}
});
}
private void CreateRegister(UsersModels usersModels){
UsersService usersService = client.Client(UsersService.class);
//post register
usersService.postRegister(usersModels).enqueue(new Callback<DataResponse<UsersModels>>() {
@Override
public void onResponse(Call<DataResponse<UsersModels>> call, Response<DataResponse<UsersModels>> response) {
}
@Override
public void onFailure(Call<DataResponse<UsersModels>> call, Throwable t) {
Log.e("Error Login", "Response "+t.getMessage());
Log.e("Error Register","Response"+t.getMessage());
}
});
}
......@@ -176,40 +203,40 @@ public class MainViewModels extends ViewModel {
productService.getProducts().enqueue(new Callback<DataResponse<List<ProductModels<CategoryModels>>>>() {
@Override
public void onResponse(Call<DataResponse<List<ProductModels<CategoryModels>>>> call, Response<DataResponse<List<ProductModels<CategoryModels>>>> response) {
Log.i("Get products", "onResponse: "+utils.convertGson(response.body()));
if (response.body() != null){
Log.i("Get products", "onResponse: " + utils.convertGson(response.body()));
if (response.body() != null) {
productList.setValue(response.body());
}else{
} else {
productList.setValue(null);
}
}
@Override
public void onFailure(Call<DataResponse<List<ProductModels<CategoryModels>>>> call, Throwable t) {
Log.e("Error get product", "Response "+t.getMessage());
Log.e("Error get product", "Response " + t.getMessage());
}
});
}
private void getCategoryList(){
private void getCategoryList() {
CategoryServise categoryServise = client.Client(CategoryServise.class);
categoryServise.getCategory().enqueue(new Callback<DataResponse<List<CategoryModels>>>() {
@Override
public void onResponse(Call<DataResponse<List<CategoryModels>>> call, Response<DataResponse<List<CategoryModels>>> response) {
String js = new Gson().toJson(response.body());
Log.d("Get Data Category", "Response "+js);
if (response.body() != null){
Log.d("Get Data Category", "Response " + js);
if (response.body() != null) {
categoryList.setValue(response.body());
}else {
} else {
categoryList.setValue(null);
}
}
@Override
public void onFailure(Call<DataResponse<List<CategoryModels>>> call, Throwable t) {
Log.e("Error get product", "Response "+t.getMessage());
Log.e("Error get product", "Response " + t.getMessage());
}
});
}
......
......@@ -6,14 +6,31 @@ public class UsersModels {
@SerializedName("username")
private String usernameUsers;
@SerializedName("email")
private String emailUsers;
@SerializedName("password")
private String passwordUsers;
public UsersModels(String usernameUsers, String passwordUsers) {
public UsersModels(String usernameUsers,String passwordUsers) {
this.usernameUsers = usernameUsers;
this.passwordUsers = passwordUsers;
}
public UsersModels(String usernameUsers, String emailUsers, String passwordUsers) {
this.usernameUsers = usernameUsers;
this.emailUsers = emailUsers;
this.passwordUsers = passwordUsers;
}
public String getEmailUsers() {
return emailUsers;
}
public void setEmailUsers(String emailUsers) {
this.emailUsers = emailUsers;
}
public String getUsernameUsers() {
return usernameUsers;
}
......
<?xml version="1.0" encoding="utf-8"?>
<!--<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent"-->
<!-- xmlns:app="http://schemas.android.com/apk/res-auto"-->
<!-- xmlns:tools="http://schemas.android.com/tools"-->
<!-- android:background="@drawable/gradient"-->
<!-- xmlns:android="http://schemas.android.com/apk/res/android"-->
<!-- tools:context=".LoginActivity">-->
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
......@@ -46,12 +38,11 @@
app:strokeColor="#fff"
android:text="sign up"
android:textStyle="bold"
android:textColor="@color/colorWhite"
android:textColor="#fff"
app:strokeWidth="2dp"
app:rippleColor="@color/colorWhite"
android:padding="20dp"
app:cornerRadius="5dp"
android:background="@color/colorPrimaryCenter"
android:layout_above="@id/signInButtonDashboardLogin"
android:layout_marginBottom="10dp"/>
......
<RelativeLayout android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="vertical"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.github.florent37.expansionpanel.ExpansionHeader
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/sampleHeader"
app:expansion_headerIndicator="@id/headerIndicator"
app:expansion_layout="@id/expansionLayout"
app:expansion_toggleOnClick="true">
<RelativeLayout
android:background="@android:color/white"
android:layout_height="48dp"
android:layout_width="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<TextView
android:layout_centerVertical="true"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Trip name"
android:textColor="#3E3E3E" />
<TextView
android:layout_centerVertical="true"
android:layout_height="wrap_content"
android:layout_marginLeft="120dp"
android:layout_width="wrap_content"
android:text="Carribean cruise"
android:textColor="#AAA" />
<androidx.appcompat.widget.AppCompatImageView
android:adjustViewBounds="true"
android:id="@+id/headerIndicator"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_width="wrap_content"
app:srcCompat="@drawable/ic_expansion_header_indicator_grey_24dp" />
</RelativeLayout>
</com.github.florent37.expansionpanel.ExpansionHeader>
<com.github.florent37.expansionpanel.ExpansionLayout
android:id="@+id/expansionLayout"
app:expansion_expanded="false"
android:layout_height="wrap_content"
android:layout_width="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_marginVertical="2dp">
<com.google.android.material.card.MaterialCardView
android:id="@+id/cvPayment"
android:clickable="true"
android:focusable="true"
android:checkable="true"
android:layout_height="wrap_content"
android:layout_width="match_parent"
app:layout_constraintTop_toTopOf="parent"
app:strokeWidth="1dp"
app:strokeColor="@color/color_stroke">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="15dp">
<ImageView
android:id="@+id/ivLogo"
android:layout_width="120dp"
android:layout_height="0dp"
android:src="@drawable/ic_bni_logo"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
<RadioButton
android:id="@+id/rbPayment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/colorPrimary"
android:enabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.github.florent37.expansionpanel.ExpansionLayout>
</RelativeLayout>
\ No newline at end of file
This diff is collapsed.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_marginVertical="2dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.google.android.material.card.MaterialCardView
android:id="@+id/cvPayment"
android:clickable="true"
android:focusable="true"
android:checkable="true"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_alignParentTop="true"
app:strokeWidth="1dp"
app:strokeColor="@color/color_stroke">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="48dp">
<ImageView
android:id="@+id/ivLogo"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:src="@drawable/cash_logo"
android:layout_alignParentStart="true"/>
</RelativeLayout>
</com.google.android.material.card.MaterialCardView>
<include
android:id="@+id/bankPayment"
layout="@layout/expansion_header_layout"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_below="@id/cvPayment"/>
<com.google.android.material.card.MaterialCardView
android:id="@+id/cvNFC"
android:clickable="true"
android:focusable="true"
android:checkable="true"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_below="@id/bankPayment"
app:strokeWidth="1dp"
app:strokeColor="@color/color_stroke">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:padding="5dp">
<ImageView
android:id="@+id/nfcLogo"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:src="@drawable/nfc_icon"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NFC Payment"
android:textSize="20dp"
android:textColor="#F7686868"
android:fontFamily="@font/poppins_medium"
android:layout_toEndOf="@id/nfcLogo"
android:layout_centerVertical="true"/>
</RelativeLayout>
</com.google.android.material.card.MaterialCardView>
</RelativeLayout>
\ No newline at end of file
This diff is collapsed.
......@@ -29,6 +29,7 @@
<string name="open_cart">Open Cart</string>
<string name="text_new_category">Add New Category</string>
<string name="email">Email</string>
<string name="password_Confirmation">Password Confirmation</string>
<string-array name="planets_array">
<item>Mercury</item>
......
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