From a21ec504546ea17c03b1bc6d5aea7df6d974d46e Mon Sep 17 00:00:00 2001 From: Gracia Date: Tue, 1 Apr 2025 01:38:02 +0700 Subject: [PATCH] intent --- app/src/main/AndroidManifest.xml | 16 +++- .../ui/profile/mystore/MyStoreActivity.kt | 82 +++++++++++++++++-- .../ProductActivity.kt} | 6 +- .../profile/DetailStoreProfileActivity.kt | 60 ++++++++++++++ .../profile/address/StoreAddressActivity.kt | 21 +++++ .../payment_info/DetailPaymentInfoActivity.kt | 21 +++++ .../payment_info/PaymentInfoActivity.kt | 21 +++++ .../ShippingServiceActivity.kt | 21 +++++ .../profile/mystore/review/ReviewFragment.kt | 31 +++++++ .../profile/mystore/review/ReviewViewModel.kt | 7 ++ .../layout/activity_detail_payment_info.xml | 11 +++ ....xml => activity_detail_store_profile.xml} | 2 +- .../main/res/layout/activity_payment_info.xml | 10 +++ app/src/main/res/layout/activity_product.xml | 10 +++ .../res/layout/activity_shipping_service.xml | 10 +++ .../res/layout/activity_store_address.xml | 10 +++ app/src/main/res/layout/fragment_review.xml | 13 +++ 17 files changed, 337 insertions(+), 15 deletions(-) rename app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/{profile/EditStoreProfileActivity.kt => product/ProductActivity.kt} (78%) create mode 100644 app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/DetailStoreProfileActivity.kt create mode 100644 app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/address/StoreAddressActivity.kt create mode 100644 app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/payment_info/DetailPaymentInfoActivity.kt create mode 100644 app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/payment_info/PaymentInfoActivity.kt create mode 100644 app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/shipping_service/ShippingServiceActivity.kt create mode 100644 app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/review/ReviewFragment.kt create mode 100644 app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/review/ReviewViewModel.kt create mode 100644 app/src/main/res/layout/activity_detail_payment_info.xml rename app/src/main/res/layout/{activity_edit_store_profile.xml => activity_detail_store_profile.xml} (99%) create mode 100644 app/src/main/res/layout/activity_payment_info.xml create mode 100644 app/src/main/res/layout/activity_product.xml create mode 100644 app/src/main/res/layout/activity_shipping_service.xml create mode 100644 app/src/main/res/layout/activity_store_address.xml create mode 100644 app/src/main/res/layout/fragment_review.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 286fe03..9d3b53e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,6 +17,18 @@ android:theme="@style/Theme.Ecommerce_serang" android:usesCleartextTraffic="true" tools:targetApi="31"> + + + + @@ -39,7 +51,7 @@ android:name=".ui.profile.mystore.product.AddProductActivity" android:exported="false" /> + android:exported="false" /> \ No newline at end of file diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/MyStoreActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/MyStoreActivity.kt index 1eddad1..7f5d0fd 100644 --- a/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/MyStoreActivity.kt +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/MyStoreActivity.kt @@ -1,19 +1,25 @@ package com.alya.ecommerce_serang.ui.profile.mystore +import android.content.Intent import android.os.Bundle import android.widget.Toast import androidx.activity.enableEdgeToEdge import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity -import androidx.fragment.app.viewModels import com.alya.ecommerce_serang.data.api.dto.Store -import com.alya.ecommerce_serang.data.api.dto.UserProfile import com.alya.ecommerce_serang.data.api.retrofit.ApiConfig import com.alya.ecommerce_serang.data.api.retrofit.ApiService import com.alya.ecommerce_serang.data.repository.MyStoreRepository -import com.alya.ecommerce_serang.data.repository.UserRepository import com.alya.ecommerce_serang.databinding.ActivityMyStoreBinding -import com.alya.ecommerce_serang.ui.profile.ProfileViewModel +import com.alya.ecommerce_serang.ui.chat.ChatFragment +import com.alya.ecommerce_serang.ui.profile.mystore.balance.BalanceActivity +import com.alya.ecommerce_serang.ui.profile.mystore.product.ProductActivity +import com.alya.ecommerce_serang.ui.profile.mystore.profile.DetailStoreProfileActivity +import com.alya.ecommerce_serang.ui.profile.mystore.review.ReviewFragment +import com.alya.ecommerce_serang.ui.profile.mystore.sells.all_sells.AllSellsFragment +import com.alya.ecommerce_serang.ui.profile.mystore.sells.order.OrderFragment +import com.alya.ecommerce_serang.ui.profile.mystore.sells.payment.PaymentFragment +import com.alya.ecommerce_serang.ui.profile.mystore.sells.shipment.ShipmentFragment import com.alya.ecommerce_serang.utils.BaseViewModelFactory import com.alya.ecommerce_serang.utils.SessionManager import com.bumptech.glide.Glide @@ -51,6 +57,8 @@ class MyStoreActivity : AppCompatActivity() { viewModel.errorMessage.observe(this) { error -> Toast.makeText(this, error, Toast.LENGTH_SHORT).show() } + + setUpClickListeners() } private fun myStoreProfileOverview(store: Store){ @@ -58,10 +66,66 @@ class MyStoreActivity : AppCompatActivity() { binding.tvStoreName.setText(store.storeName.toString()) binding.tvStoreType.setText(store.storeType.toString()) -// if (store.storeImage != null && user.image is String) { -// Glide.with(this) -// .load(user.image) -// .into(binding.profileImage) -// } + store.storeImage.let { + Glide.with(this) + .load(it) + .into(binding.ivProfile) + } + } + + private fun setUpClickListeners() { + binding.btnEditProfile.setOnClickListener { + startActivity(Intent(this, DetailStoreProfileActivity::class.java)) + } + + binding.layoutBalance.setOnClickListener { + startActivity(Intent(this, BalanceActivity::class.java)) + } + + binding.tvHistory.setOnClickListener { + supportFragmentManager.beginTransaction() + .replace(android.R.id.content, AllSellsFragment()) + .addToBackStack(null) + .commit() + } + + binding.layoutPerluTagihan.setOnClickListener { + supportFragmentManager.beginTransaction() + .replace(android.R.id.content, OrderFragment()) + .addToBackStack(null) + .commit() + } + + binding.layoutPembayaran.setOnClickListener { + supportFragmentManager.beginTransaction() + .replace(android.R.id.content, PaymentFragment()) + .addToBackStack(null) + .commit() + } + + binding.layoutPerluDikirim.setOnClickListener { + supportFragmentManager.beginTransaction() + .replace(android.R.id.content, ShipmentFragment()) + .addToBackStack(null) + .commit() + } + + binding.layoutProductMenu.setOnClickListener { + startActivity(Intent(this, ProductActivity::class.java)) + } + + binding.layoutReview.setOnClickListener { + supportFragmentManager.beginTransaction() + .replace(android.R.id.content, ReviewFragment()) + .addToBackStack(null) + .commit() + } + + binding.layoutInbox.setOnClickListener { + supportFragmentManager.beginTransaction() + .replace(android.R.id.content, ChatFragment()) + .addToBackStack(null) + .commit() + } } } \ No newline at end of file diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/EditStoreProfileActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/product/ProductActivity.kt similarity index 78% rename from app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/EditStoreProfileActivity.kt rename to app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/product/ProductActivity.kt index 3e8f8ac..9505316 100644 --- a/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/EditStoreProfileActivity.kt +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/product/ProductActivity.kt @@ -1,4 +1,4 @@ -package com.alya.ecommerce_serang.ui.profile.mystore.profile +package com.alya.ecommerce_serang.ui.profile.mystore.product import android.os.Bundle import androidx.activity.enableEdgeToEdge @@ -7,11 +7,11 @@ import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.alya.ecommerce_serang.R -class EditStoreProfileActivity : AppCompatActivity() { +class ProductActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() - setContentView(R.layout.activity_edit_store_profile) + setContentView(R.layout.activity_product) ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/DetailStoreProfileActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/DetailStoreProfileActivity.kt new file mode 100644 index 0000000..a577607 --- /dev/null +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/DetailStoreProfileActivity.kt @@ -0,0 +1,60 @@ +package com.alya.ecommerce_serang.ui.profile.mystore.profile + +import android.os.Bundle +import android.widget.Toast +import androidx.activity.enableEdgeToEdge +import androidx.activity.viewModels +import androidx.appcompat.app.AppCompatActivity +import com.alya.ecommerce_serang.data.api.dto.Store +import com.alya.ecommerce_serang.data.api.retrofit.ApiConfig +import com.alya.ecommerce_serang.data.api.retrofit.ApiService +import com.alya.ecommerce_serang.data.repository.MyStoreRepository +import com.alya.ecommerce_serang.databinding.ActivityDetailStoreProfileBinding +import com.alya.ecommerce_serang.ui.profile.mystore.MyStoreViewModel +import com.alya.ecommerce_serang.utils.BaseViewModelFactory +import com.alya.ecommerce_serang.utils.SessionManager +import com.bumptech.glide.Glide +import kotlin.getValue + +class DetailStoreProfileActivity : AppCompatActivity() { + private lateinit var binding: ActivityDetailStoreProfileBinding + private lateinit var apiService: ApiService + private lateinit var sessionManager: SessionManager + + private val viewModel: MyStoreViewModel by viewModels { + BaseViewModelFactory { + val apiService = ApiConfig.getApiService(sessionManager) + val myStoreRepository = MyStoreRepository(apiService) + MyStoreViewModel(myStoreRepository) + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivityDetailStoreProfileBinding.inflate(layoutInflater) + setContentView(binding.root) + + sessionManager = SessionManager(this) + apiService = ApiConfig.getApiService(sessionManager) + + enableEdgeToEdge() + + viewModel.loadMyStore() + + viewModel.myStoreProfile.observe(this){ user -> + user?.let { updateStoreProfile(it) } + } + + viewModel.errorMessage.observe(this) { error -> + Toast.makeText(this, error, Toast.LENGTH_SHORT).show() + } + } + + private fun updateStoreProfile(store: Store){ + + binding.edtNamaToko.setText(store.storeName.toString()) + binding.edtJenisToko.setText(store.storeType.toString()) + binding.edtDeskripsiToko.setText(store.storeDescription.toString()) + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/address/StoreAddressActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/address/StoreAddressActivity.kt new file mode 100644 index 0000000..eca05b1 --- /dev/null +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/address/StoreAddressActivity.kt @@ -0,0 +1,21 @@ +package com.alya.ecommerce_serang.ui.profile.mystore.profile.address + +import android.os.Bundle +import androidx.activity.enableEdgeToEdge +import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import com.alya.ecommerce_serang.R + +class StoreAddressActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContentView(R.layout.activity_store_address) + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> + val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) + insets + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/payment_info/DetailPaymentInfoActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/payment_info/DetailPaymentInfoActivity.kt new file mode 100644 index 0000000..dfde88d --- /dev/null +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/payment_info/DetailPaymentInfoActivity.kt @@ -0,0 +1,21 @@ +package com.alya.ecommerce_serang.ui.profile.mystore.profile.payment_info + +import android.os.Bundle +import androidx.activity.enableEdgeToEdge +import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import com.alya.ecommerce_serang.R + +class DetailPaymentInfoActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContentView(R.layout.activity_detail_payment_info) + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> + val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) + insets + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/payment_info/PaymentInfoActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/payment_info/PaymentInfoActivity.kt new file mode 100644 index 0000000..ad7c97d --- /dev/null +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/payment_info/PaymentInfoActivity.kt @@ -0,0 +1,21 @@ +package com.alya.ecommerce_serang.ui.profile.mystore.profile.payment_info + +import android.os.Bundle +import androidx.activity.enableEdgeToEdge +import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import com.alya.ecommerce_serang.R + +class PaymentInfoActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContentView(R.layout.activity_payment_info) + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> + val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) + insets + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/shipping_service/ShippingServiceActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/shipping_service/ShippingServiceActivity.kt new file mode 100644 index 0000000..63ea33e --- /dev/null +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/shipping_service/ShippingServiceActivity.kt @@ -0,0 +1,21 @@ +package com.alya.ecommerce_serang.ui.profile.mystore.profile.shipping_service + +import android.os.Bundle +import androidx.activity.enableEdgeToEdge +import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import com.alya.ecommerce_serang.R + +class ShippingServiceActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContentView(R.layout.activity_shipping_service) + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> + val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) + insets + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/review/ReviewFragment.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/review/ReviewFragment.kt new file mode 100644 index 0000000..e24e554 --- /dev/null +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/review/ReviewFragment.kt @@ -0,0 +1,31 @@ +package com.alya.ecommerce_serang.ui.profile.mystore.review + +import androidx.fragment.app.viewModels +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import com.alya.ecommerce_serang.R + +class ReviewFragment : Fragment() { + + companion object { + fun newInstance() = ReviewFragment() + } + + private val viewModel: ReviewViewModel by viewModels() + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + // TODO: Use the ViewModel + } + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + return inflater.inflate(R.layout.fragment_review, container, false) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/review/ReviewViewModel.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/review/ReviewViewModel.kt new file mode 100644 index 0000000..0a00867 --- /dev/null +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/review/ReviewViewModel.kt @@ -0,0 +1,7 @@ +package com.alya.ecommerce_serang.ui.profile.mystore.review + +import androidx.lifecycle.ViewModel + +class ReviewViewModel : ViewModel() { + // TODO: Implement the ViewModel +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_detail_payment_info.xml b/app/src/main/res/layout/activity_detail_payment_info.xml new file mode 100644 index 0000000..d9dbebe --- /dev/null +++ b/app/src/main/res/layout/activity_detail_payment_info.xml @@ -0,0 +1,11 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_edit_store_profile.xml b/app/src/main/res/layout/activity_detail_store_profile.xml similarity index 99% rename from app/src/main/res/layout/activity_edit_store_profile.xml rename to app/src/main/res/layout/activity_detail_store_profile.xml index 1d1918e..f0bd6b8 100644 --- a/app/src/main/res/layout/activity_edit_store_profile.xml +++ b/app/src/main/res/layout/activity_detail_store_profile.xml @@ -6,7 +6,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" - tools:context=".ui.profile.mystore.profile.EditStoreProfileActivity"> + tools:context=".ui.profile.mystore.profile.DetailStoreProfileActivity"> diff --git a/app/src/main/res/layout/activity_payment_info.xml b/app/src/main/res/layout/activity_payment_info.xml new file mode 100644 index 0000000..89f1535 --- /dev/null +++ b/app/src/main/res/layout/activity_payment_info.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_product.xml b/app/src/main/res/layout/activity_product.xml new file mode 100644 index 0000000..bb79d7a --- /dev/null +++ b/app/src/main/res/layout/activity_product.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_shipping_service.xml b/app/src/main/res/layout/activity_shipping_service.xml new file mode 100644 index 0000000..b5c7e92 --- /dev/null +++ b/app/src/main/res/layout/activity_shipping_service.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_store_address.xml b/app/src/main/res/layout/activity_store_address.xml new file mode 100644 index 0000000..661d919 --- /dev/null +++ b/app/src/main/res/layout/activity_store_address.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_review.xml b/app/src/main/res/layout/fragment_review.xml new file mode 100644 index 0000000..dace922 --- /dev/null +++ b/app/src/main/res/layout/fragment_review.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file