diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c4e9461..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,10 +51,10 @@ 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/data/api/dto/Store.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/dto/Store.kt new file mode 100644 index 0000000..090afa2 --- /dev/null +++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/dto/Store.kt @@ -0,0 +1,102 @@ +package com.alya.ecommerce_serang.data.api.dto + +import com.google.gson.annotations.SerializedName + +data class Store( + + @field:SerializedName("approval_reason") + val approvalReason: String, + + @field:SerializedName("store_status") + val storeStatus: String, + + @field:SerializedName("sppirt") + val sppirt: String, + + @field:SerializedName("user_name") + val userName: String, + + @field:SerializedName("nib") + val nib: String, + + @field:SerializedName("latitude") + val latitude: String, + + @field:SerializedName("store_type_id") + val storeTypeId: Int, + + @field:SerializedName("balance") + val balance: String, + + @field:SerializedName("street") + val street: String, + + @field:SerializedName("store_name") + val storeName: String, + + @field:SerializedName("user_phone") + val userPhone: String, + + @field:SerializedName("halal") + val halal: String, + + @field:SerializedName("id") + val id: Int, + + @field:SerializedName("email") + val email: String, + + @field:SerializedName("store_image") + val storeImage: Any, + + @field:SerializedName("longitude") + val longitude: String, + + @field:SerializedName("store_id") + val storeId: Int, + + @field:SerializedName("is_store_location") + val isStoreLocation: Boolean, + + @field:SerializedName("ktp") + val ktp: String, + + @field:SerializedName("approval_status") + val approvalStatus: String, + + @field:SerializedName("npwp") + val npwp: String, + + @field:SerializedName("store_type") + val storeType: String, + + @field:SerializedName("is_on_leave") + val isOnLeave: Boolean, + + @field:SerializedName("user_id") + val userId: Int, + + @field:SerializedName("province_id") + val provinceId: Int, + + @field:SerializedName("phone") + val phone: String, + + @field:SerializedName("subdistrict") + val subdistrict: String, + + @field:SerializedName("recipient") + val recipient: String, + + @field:SerializedName("detail") + val detail: String, + + @field:SerializedName("postal_code") + val postalCode: String, + + @field:SerializedName("store_description") + val storeDescription: String, + + @field:SerializedName("city_id") + val cityId: Int +) diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/StoreResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/StoreResponse.kt index 386de42..9895f15 100644 --- a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/StoreResponse.kt +++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/StoreResponse.kt @@ -1,5 +1,6 @@ package com.alya.ecommerce_serang.data.api.response +import com.alya.ecommerce_serang.data.api.dto.Store import com.google.gson.annotations.SerializedName data class StoreResponse( @@ -17,105 +18,6 @@ data class StoreResponse( val message: String ) -data class Store( - - @field:SerializedName("approval_reason") - val approvalReason: String, - - @field:SerializedName("store_status") - val storeStatus: String, - - @field:SerializedName("sppirt") - val sppirt: String, - - @field:SerializedName("user_name") - val userName: String, - - @field:SerializedName("nib") - val nib: String, - - @field:SerializedName("latitude") - val latitude: String, - - @field:SerializedName("store_type_id") - val storeTypeId: Int, - - @field:SerializedName("balance") - val balance: String, - - @field:SerializedName("street") - val street: String, - - @field:SerializedName("store_name") - val storeName: String, - - @field:SerializedName("user_phone") - val userPhone: String, - - @field:SerializedName("halal") - val halal: String, - - @field:SerializedName("id") - val id: Int, - - @field:SerializedName("email") - val email: String, - - @field:SerializedName("store_image") - val storeImage: Any, - - @field:SerializedName("longitude") - val longitude: String, - - @field:SerializedName("store_id") - val storeId: Int, - - @field:SerializedName("is_store_location") - val isStoreLocation: Boolean, - - @field:SerializedName("ktp") - val ktp: String, - - @field:SerializedName("approval_status") - val approvalStatus: String, - - @field:SerializedName("npwp") - val npwp: String, - - @field:SerializedName("store_type") - val storeType: String, - - @field:SerializedName("is_on_leave") - val isOnLeave: Boolean, - - @field:SerializedName("user_id") - val userId: Int, - - @field:SerializedName("province_id") - val provinceId: Int, - - @field:SerializedName("phone") - val phone: String, - - @field:SerializedName("subdistrict") - val subdistrict: String, - - @field:SerializedName("recipient") - val recipient: String, - - @field:SerializedName("detail") - val detail: String, - - @field:SerializedName("postal_code") - val postalCode: String, - - @field:SerializedName("store_description") - val storeDescription: String, - - @field:SerializedName("city_id") - val cityId: Int -) - data class ShippingItem( @field:SerializedName("courier") diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/retrofit/ApiService.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/retrofit/ApiService.kt index 5cf478a..f616739 100644 --- a/app/src/main/java/com/alya/ecommerce_serang/data/api/retrofit/ApiService.kt +++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/retrofit/ApiService.kt @@ -63,5 +63,5 @@ interface ApiService { @GET("mystore") - fun getStore (): Call + suspend fun getStore (): Response } \ No newline at end of file diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/repository/MyStoreRepository.kt b/app/src/main/java/com/alya/ecommerce_serang/data/repository/MyStoreRepository.kt new file mode 100644 index 0000000..003f772 --- /dev/null +++ b/app/src/main/java/com/alya/ecommerce_serang/data/repository/MyStoreRepository.kt @@ -0,0 +1,31 @@ +package com.alya.ecommerce_serang.data.repository + +import android.util.Log +import com.alya.ecommerce_serang.data.api.dto.Store +import com.alya.ecommerce_serang.data.api.response.StoreResponse +import com.alya.ecommerce_serang.data.api.retrofit.ApiService +import retrofit2.HttpException +import java.io.IOException + +class MyStoreRepository(private val apiService: ApiService) { + suspend fun fetchMyStoreProfile(): Result { + return try { + val response = apiService.getStore() + + if (response.isSuccessful) { + val storeResponse: StoreResponse? = response.body() + Result.Success(storeResponse?.store) // ✅ Return Success with Store data + } else { + val errorMessage = response.errorBody()?.string() ?: "Unknown API error" + Log.e("MyStoreRepository", "Error: $errorMessage") + Result.Error(HttpException(response)) // ✅ Wrap API error in Result.Error + } + } catch (e: IOException) { + Log.e("MyStoreRepository", "Network error: ${e.message}") + Result.Error(e) // ✅ Handle network-related errors + } catch (e: Exception) { + Log.e("MyStoreRepository", "Unexpected error: ${e.message}") + Result.Error(e) // ✅ Handle unexpected errors + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/product/ProductViewModel.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/product/ProductViewModel.kt index 87bb380..e349bfa 100644 --- a/app/src/main/java/com/alya/ecommerce_serang/ui/product/ProductViewModel.kt +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/product/ProductViewModel.kt @@ -4,9 +4,9 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import com.alya.ecommerce_serang.data.api.dto.Store import com.alya.ecommerce_serang.data.api.response.Product import com.alya.ecommerce_serang.data.api.response.ReviewsItem -import com.alya.ecommerce_serang.data.api.response.Store import com.alya.ecommerce_serang.data.repository.ProductRepository import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/profile/ProfileFragment.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/ProfileFragment.kt index 71329ba..893f568 100644 --- a/app/src/main/java/com/alya/ecommerce_serang/ui/profile/ProfileFragment.kt +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/ProfileFragment.kt @@ -15,7 +15,7 @@ import com.alya.ecommerce_serang.data.api.dto.UserProfile import com.alya.ecommerce_serang.data.api.retrofit.ApiConfig import com.alya.ecommerce_serang.data.repository.UserRepository import com.alya.ecommerce_serang.databinding.FragmentProfileBinding -import com.alya.ecommerce_serang.ui.profile.mystore.TokoSayaActivity +import com.alya.ecommerce_serang.ui.profile.mystore.MyStoreActivity import com.alya.ecommerce_serang.utils.BaseViewModelFactory import com.alya.ecommerce_serang.utils.SessionManager import com.bumptech.glide.Glide @@ -54,7 +54,7 @@ class ProfileFragment : Fragment() { viewModel.loadUserProfile() binding.cardBukaToko.setOnClickListener{ - val intentBuka = Intent(requireContext(), TokoSayaActivity::class.java) + val intentBuka = Intent(requireContext(), MyStoreActivity::class.java) startActivity(intentBuka) } 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 new file mode 100644 index 0000000..7f5d0fd --- /dev/null +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/MyStoreActivity.kt @@ -0,0 +1,131 @@ +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 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.ActivityMyStoreBinding +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 +import kotlin.getValue + +class MyStoreActivity : AppCompatActivity() { + private lateinit var binding: ActivityMyStoreBinding + 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 = ActivityMyStoreBinding.inflate(layoutInflater) + setContentView(binding.root) + + sessionManager = SessionManager(this) + apiService = ApiConfig.getApiService(sessionManager) + + enableEdgeToEdge() + + viewModel.loadMyStore() + + viewModel.myStoreProfile.observe(this){ user -> + user?.let { myStoreProfileOverview(it) } + } + + viewModel.errorMessage.observe(this) { error -> + Toast.makeText(this, error, Toast.LENGTH_SHORT).show() + } + + setUpClickListeners() + } + + private fun myStoreProfileOverview(store: Store){ + + binding.tvStoreName.setText(store.storeName.toString()) + binding.tvStoreType.setText(store.storeType.toString()) + + 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/MyStoreViewModel.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/MyStoreViewModel.kt new file mode 100644 index 0000000..faff88c --- /dev/null +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/MyStoreViewModel.kt @@ -0,0 +1,28 @@ +package com.alya.ecommerce_serang.ui.profile.mystore + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.alya.ecommerce_serang.data.api.dto.Store +import com.alya.ecommerce_serang.data.repository.MyStoreRepository +import com.alya.ecommerce_serang.data.repository.Result +import kotlinx.coroutines.launch + +class MyStoreViewModel(private val myStoreRepository: MyStoreRepository): ViewModel() { + private val _myStoreProfile = MutableLiveData() + val myStoreProfile: LiveData = _myStoreProfile + + private val _errorMessage = MutableLiveData() + val errorMessage : LiveData = _errorMessage + + fun loadMyStore(){ + viewModelScope.launch { + when (val result = myStoreRepository.fetchMyStoreProfile()){ + is Result.Success -> _myStoreProfile.postValue(result.data) + is Result.Error -> _errorMessage.postValue(result.exception.message ?: "Unknown Error") + is Result.Loading -> null + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/TokoSayaActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/product/ProductActivity.kt similarity index 80% rename from app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/TokoSayaActivity.kt rename to app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/product/ProductActivity.kt index 87f4748..9505316 100644 --- a/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/TokoSayaActivity.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 +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 TokoSayaActivity : AppCompatActivity() { +class ProductActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() - setContentView(R.layout.activity_toko_saya) + 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/EditStoreProfileActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/mystore/profile/address/StoreAddressActivity.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/profile/address/StoreAddressActivity.kt index 3e8f8ac..eca05b1 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/profile/address/StoreAddressActivity.kt @@ -1,4 +1,4 @@ -package com.alya.ecommerce_serang.ui.profile.mystore.profile +package com.alya.ecommerce_serang.ui.profile.mystore.profile.address 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 StoreAddressActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() - setContentView(R.layout.activity_edit_store_profile) + 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) 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-v28/activity_toko_saya.xml b/app/src/main/res/layout-v28/activity_toko_saya.xml deleted file mode 100644 index 21b20a2..0000000 --- a/app/src/main/res/layout-v28/activity_toko_saya.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - \ 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_toko_saya.xml b/app/src/main/res/layout/activity_my_store.xml similarity index 99% rename from app/src/main/res/layout/activity_toko_saya.xml rename to app/src/main/res/layout/activity_my_store.xml index 8312727..4d1dff9 100644 --- a/app/src/main/res/layout/activity_toko_saya.xml +++ b/app/src/main/res/layout/activity_my_store.xml @@ -6,7 +6,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" - tools:context=".ui.profile.mystore.TokoSayaActivity"> + tools:context=".ui.profile.mystore.MyStoreActivity"> 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