commit 9607507c9a5a88199f355093073548b0e76ad735 Author: Nezumi <123229563+Nez27@users.noreply.github.com> Date: Tue Mar 28 11:19:18 2023 +0700 Initial commit diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a68e5b5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,30 @@ +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Log/OS Files +*.log + +# Android Studio generated files and folders +captures/ +.externalNativeBuild/ +.cxx/ +*.apk +output.json + +# IntelliJ +*.iml +.idea/ + +# Keystore files +*.jks +*.keystore + +# Google Services (e.g. APIs or Firebase) +google-services.json + +# Android Profiling +*.hprof diff --git a/README.md b/README.md new file mode 100644 index 0000000..9cc3dde --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# Foodify-Shipper + Android App Project Capstone diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..1410921 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,42 @@ +plugins { + id 'com.android.application' +} + +android { + namespace 'com.capstone.foodify.shipper' + compileSdk 33 + + defaultConfig { + applicationId "com.capstone.foodify.shipper" + minSdk 26 + targetSdk 32 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} + +dependencies { + + implementation 'androidx.core:core-splashscreen:1.0.0' + implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'com.google.android.material:material:1.9.0-beta01' + implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + + implementation 'com.makeramen:roundedimageview:2.3.0' +} \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/app/src/androidTest/java/com/capstone/foodify/shipper/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/capstone/foodify/shipper/ExampleInstrumentedTest.java new file mode 100644 index 0000000..20ce707 --- /dev/null +++ b/app/src/androidTest/java/com/capstone/foodify/shipper/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.capstone.foodify.shipper; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.capstone.foodify.shipper", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..ca112ed --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/capstone/foodify/shipper/Activity/MainActivity.java b/app/src/main/java/com/capstone/foodify/shipper/Activity/MainActivity.java new file mode 100644 index 0000000..9a18d84 --- /dev/null +++ b/app/src/main/java/com/capstone/foodify/shipper/Activity/MainActivity.java @@ -0,0 +1,73 @@ +package com.capstone.foodify.shipper.Activity; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatDelegate; +import androidx.core.splashscreen.SplashScreen; +import androidx.viewpager2.widget.ViewPager2; + +import android.annotation.SuppressLint; +import android.os.Bundle; +import android.view.MenuItem; + +import com.capstone.foodify.shipper.R; +import com.capstone.foodify.shipper.ViewPagerAdapter; +import com.google.android.material.bottomnavigation.BottomNavigationView; +import com.google.android.material.navigation.NavigationBarView; + +public class MainActivity extends AppCompatActivity { + + ViewPager2 viewPager2; + ViewPagerAdapter viewPagerAdapter; + BottomNavigationView bottomNavigationView; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + //Init Component + bottomNavigationView = findViewById(R.id.bottom_nav); + viewPager2 = findViewById(R.id.viewPager); + + bottomNavigation(); + } + + private void bottomNavigation() { + viewPagerAdapter = new ViewPagerAdapter(this); + viewPager2.setAdapter(viewPagerAdapter); + + viewPager2.setUserInputEnabled(false); + bottomNavigationView.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() { + @SuppressLint("NonConstantResourceId") + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + int id = item.getItemId(); + switch (id) { + case R.id.activity_order: + viewPager2.setCurrentItem(0); + break; + case R.id.activity_profile: + viewPager2.setCurrentItem(1); + break; + } + return false; + } + }); + + viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { + @Override + public void onPageSelected(int position) { + switch (position){ + case 0: + bottomNavigationView.getMenu().findItem(R.id.activity_order).setChecked(true); + break; + case 1: + bottomNavigationView.getMenu().findItem(R.id.activity_profile).setChecked(true); + break; + } + super.onPageSelected(position); + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/capstone/foodify/shipper/Activity/OrderDetailActivity.java b/app/src/main/java/com/capstone/foodify/shipper/Activity/OrderDetailActivity.java new file mode 100644 index 0000000..c2ab468 --- /dev/null +++ b/app/src/main/java/com/capstone/foodify/shipper/Activity/OrderDetailActivity.java @@ -0,0 +1,16 @@ +package com.capstone.foodify.shipper.Activity; + +import androidx.appcompat.app.AppCompatActivity; + +import android.os.Bundle; + +import com.capstone.foodify.shipper.R; + +public class OrderDetailActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_order_detail); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/capstone/foodify/shipper/Activity/SignInActivity.java b/app/src/main/java/com/capstone/foodify/shipper/Activity/SignInActivity.java new file mode 100644 index 0000000..715a3c7 --- /dev/null +++ b/app/src/main/java/com/capstone/foodify/shipper/Activity/SignInActivity.java @@ -0,0 +1,35 @@ +package com.capstone.foodify.shipper.Activity; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatDelegate; +import androidx.core.splashscreen.SplashScreen; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; + +import com.capstone.foodify.shipper.R; + +public class SignInActivity extends AppCompatActivity { + + Button btn_sign_in; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + SplashScreen.installSplashScreen(this); + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + setContentView(R.layout.activity_sign_in); + + //Init Component + btn_sign_in = findViewById(R.id.btn_sign_in); + + btn_sign_in.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + startActivity(new Intent(SignInActivity.this, MainActivity.class)); + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/capstone/foodify/shipper/Adapter/OrderAdapter.java b/app/src/main/java/com/capstone/foodify/shipper/Adapter/OrderAdapter.java new file mode 100644 index 0000000..d824cf6 --- /dev/null +++ b/app/src/main/java/com/capstone/foodify/shipper/Adapter/OrderAdapter.java @@ -0,0 +1,88 @@ +package com.capstone.foodify.shipper.Adapter; + +import android.content.Context; +import android.content.Intent; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.capstone.foodify.shipper.Activity.OrderDetailActivity; +import com.capstone.foodify.shipper.Model.Order; +import com.capstone.foodify.shipper.R; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; + +public class OrderAdapter extends RecyclerView.Adapter{ + + public List listOrders; + + public OrderAdapter() { + } + + public void setData(List listOrders){ + this.listOrders = listOrders; + } + + @NonNull + @Override + public OrderViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_order, parent, false); + return new OrderViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull OrderViewHolder holder, int position) { + Order order = listOrders.get(position); + + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss dd/MM/yyyy"); + LocalDateTime now = LocalDateTime.now(); + + if(order == null) + return; + + holder.order_tracking_number.setText("Order Id: #" + order.getOrderTrackingNumber()); + holder.user_name.setText("Tên: Nguyễn Văn A"); + holder.phone.setText("0987654321"); + holder.address.setText("Phạm Như Xương, Hoà Khánh Nam, Liên Chiểu"); + holder.orderTime.setText(dtf.format(now)); + holder.total.setText("Tổng: 1.200.000đ"); + } + + @Override + public int getItemCount() { + if(listOrders != null) + return listOrders.size(); + return 0; + } + + public class OrderViewHolder extends RecyclerView.ViewHolder{ + + TextView order_tracking_number, user_name, phone, address, orderTime, total; + Context context; + + public OrderViewHolder(@NonNull View itemView) { + super(itemView); + context = itemView.getContext(); + + order_tracking_number = itemView.findViewById(R.id.order_tracking_number); + user_name = itemView.findViewById(R.id.user_name); + phone = itemView.findViewById(R.id.phone); + address = itemView.findViewById(R.id.address); + orderTime = itemView.findViewById(R.id.order_time); + total = itemView.findViewById(R.id.total); + + itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + context.startActivity(new Intent(context, OrderDetailActivity.class)); + } + }); + } + } +} diff --git a/app/src/main/java/com/capstone/foodify/shipper/Fragment/OrderFragment.java b/app/src/main/java/com/capstone/foodify/shipper/Fragment/OrderFragment.java new file mode 100644 index 0000000..21f17e7 --- /dev/null +++ b/app/src/main/java/com/capstone/foodify/shipper/Fragment/OrderFragment.java @@ -0,0 +1,50 @@ +package com.capstone.foodify.shipper.Fragment; + +import android.os.Bundle; + +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.capstone.foodify.shipper.Adapter.OrderAdapter; +import com.capstone.foodify.shipper.Model.Order; +import com.capstone.foodify.shipper.R; + +import java.util.ArrayList; +import java.util.List; + +public class OrderFragment extends Fragment { + + private List listOrders = new ArrayList<>(); + RecyclerView recyclerView; + OrderAdapter orderAdapter; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + View view = inflater.inflate(R.layout.fragment_order, container, false); + + //Init Component + recyclerView = view.findViewById(R.id.rcv_list_order); + + orderAdapter = new OrderAdapter(); + + for(int i = 0; i < 5; i++){ + int b = (int)(Math.random()*(999999-100000+1)+100000); + listOrders.add(new Order(String.valueOf(b))); + } + + LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext(), RecyclerView.VERTICAL, false); + recyclerView.setLayoutManager(linearLayoutManager); + + orderAdapter.setData(listOrders); + recyclerView.setAdapter(orderAdapter); + + return view; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/capstone/foodify/shipper/Fragment/ProfileFragment.java b/app/src/main/java/com/capstone/foodify/shipper/Fragment/ProfileFragment.java new file mode 100644 index 0000000..c99bccf --- /dev/null +++ b/app/src/main/java/com/capstone/foodify/shipper/Fragment/ProfileFragment.java @@ -0,0 +1,21 @@ +package com.capstone.foodify.shipper.Fragment; + +import android.os.Bundle; + +import androidx.fragment.app.Fragment; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.capstone.foodify.shipper.R; + +public class ProfileFragment extends Fragment { + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_profile, container, false); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/capstone/foodify/shipper/Model/Order.java b/app/src/main/java/com/capstone/foodify/shipper/Model/Order.java new file mode 100644 index 0000000..61cb33a --- /dev/null +++ b/app/src/main/java/com/capstone/foodify/shipper/Model/Order.java @@ -0,0 +1,99 @@ +package com.capstone.foodify.shipper.Model; + +import java.util.List; + +public class Order { + private int id; + private String orderTrackingNumber; + private int shipperId; + private String paymentMethod; + private float shippingCost; + private String status; + private String address; + private List orderDetails; + + public Order(String orderTrackingNumber, int shipperId, String paymentMethod, float shippingCost, String status, String address, List orderDetails) { + this.orderTrackingNumber = orderTrackingNumber; + this.shipperId = shipperId; + this.paymentMethod = paymentMethod; + this.shippingCost = shippingCost; + this.status = status; + this.address = address; + this.orderDetails = orderDetails; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public Order(String orderTrackingNumber) { + this.orderTrackingNumber = orderTrackingNumber; + } + public String getOrderTrackingNumber() { + return orderTrackingNumber; + } + + public void setOrderTrackingNumber(String orderTrackingNumber) { + this.orderTrackingNumber = orderTrackingNumber; + } + + public int getShipperId() { + return shipperId; + } + + public void setShipperId(int shipperId) { + this.shipperId = shipperId; + } + + public String getPaymentMethod() { + return paymentMethod; + } + + public void setPaymentMethod(String paymentMethod) { + this.paymentMethod = paymentMethod; + } + + public float getShippingCost() { + return shippingCost; + } + + public void setShippingCost(float shippingCost) { + this.shippingCost = shippingCost; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public List getOrderDetails() { + return orderDetails; + } + + public void setOrderDetails(List orderDetails) { + this.orderDetails = orderDetails; + } + + public List getListOrderDetail() { + return orderDetails; + } + + public void setListOrderDetail(List listOrderDetail) { + this.orderDetails = listOrderDetail; + } +} diff --git a/app/src/main/java/com/capstone/foodify/shipper/Model/OrderDetail.java b/app/src/main/java/com/capstone/foodify/shipper/Model/OrderDetail.java new file mode 100644 index 0000000..0284f97 --- /dev/null +++ b/app/src/main/java/com/capstone/foodify/shipper/Model/OrderDetail.java @@ -0,0 +1,49 @@ +package com.capstone.foodify.shipper.Model; + +public class OrderDetail { + private int id; + private int orderId; + private int productId; + private String quantity; + private float subTotal; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getOrderId() { + return orderId; + } + + public void setOrderId(int orderId) { + this.orderId = orderId; + } + + public int getProductId() { + return productId; + } + + public void setProductId(int productId) { + this.productId = productId; + } + + public String getQuantity() { + return quantity; + } + + public void setQuantity(String quantity) { + this.quantity = quantity; + } + + public float getSubTotal() { + return subTotal; + } + + public void setSubTotal(float subTotal) { + this.subTotal = subTotal; + } +} diff --git a/app/src/main/java/com/capstone/foodify/shipper/ViewPagerAdapter.java b/app/src/main/java/com/capstone/foodify/shipper/ViewPagerAdapter.java new file mode 100644 index 0000000..91e2226 --- /dev/null +++ b/app/src/main/java/com/capstone/foodify/shipper/ViewPagerAdapter.java @@ -0,0 +1,30 @@ +package com.capstone.foodify.shipper; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; +import androidx.viewpager2.adapter.FragmentStateAdapter; + +import com.capstone.foodify.shipper.Fragment.OrderFragment; +import com.capstone.foodify.shipper.Fragment.ProfileFragment; + +public class ViewPagerAdapter extends FragmentStateAdapter { + + public ViewPagerAdapter(@NonNull FragmentActivity fragmentActivity) { + super(fragmentActivity); + } + + @NonNull + @Override + public Fragment createFragment(int position) { + switch(position) { + case 1: return new ProfileFragment(); + default: return new OrderFragment(); + } + } + + @Override + public int getItemCount() { + return 2; + } +} diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/back_button.xml b/app/src/main/res/drawable/back_button.xml new file mode 100644 index 0000000..7e077b4 --- /dev/null +++ b/app/src/main/res/drawable/back_button.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/baseline_abc_24.xml b/app/src/main/res/drawable/baseline_abc_24.xml new file mode 100644 index 0000000..c73f146 --- /dev/null +++ b/app/src/main/res/drawable/baseline_abc_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_calendar_month_24.xml b/app/src/main/res/drawable/baseline_calendar_month_24.xml new file mode 100644 index 0000000..b89360f --- /dev/null +++ b/app/src/main/res/drawable/baseline_calendar_month_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_email_24.xml b/app/src/main/res/drawable/baseline_email_24.xml new file mode 100644 index 0000000..f0abc2d --- /dev/null +++ b/app/src/main/res/drawable/baseline_email_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_person_24.xml b/app/src/main/res/drawable/baseline_person_24.xml new file mode 100644 index 0000000..98730cd --- /dev/null +++ b/app/src/main/res/drawable/baseline_person_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_phone_24.xml b/app/src/main/res/drawable/baseline_phone_24.xml new file mode 100644 index 0000000..95c5f8a --- /dev/null +++ b/app/src/main/res/drawable/baseline_phone_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_vpn_key_24.xml b/app/src/main/res/drawable/baseline_vpn_key_24.xml new file mode 100644 index 0000000..1339fb3 --- /dev/null +++ b/app/src/main/res/drawable/baseline_vpn_key_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_basket.xml b/app/src/main/res/drawable/ic_basket.xml new file mode 100644 index 0000000..a1dc16f --- /dev/null +++ b/app/src/main/res/drawable/ic_basket.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_profile.xml b/app/src/main/res/drawable/ic_profile.xml new file mode 100644 index 0000000..4e34a8c --- /dev/null +++ b/app/src/main/res/drawable/ic_profile.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/icon_shipper_with_background.png b/app/src/main/res/drawable/icon_shipper_with_background.png new file mode 100644 index 0000000..3d3a1f2 Binary files /dev/null and b/app/src/main/res/drawable/icon_shipper_with_background.png differ diff --git a/app/src/main/res/drawable/location.xml b/app/src/main/res/drawable/location.xml new file mode 100644 index 0000000..4108547 --- /dev/null +++ b/app/src/main/res/drawable/location.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/logo.png b/app/src/main/res/drawable/logo.png new file mode 100644 index 0000000..bd41f95 Binary files /dev/null and b/app/src/main/res/drawable/logo.png differ diff --git a/app/src/main/res/drawable/pencil.xml b/app/src/main/res/drawable/pencil.xml new file mode 100644 index 0000000..5fd7b2f --- /dev/null +++ b/app/src/main/res/drawable/pencil.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable/profile_avatar.png b/app/src/main/res/drawable/profile_avatar.png new file mode 100644 index 0000000..0989209 Binary files /dev/null and b/app/src/main/res/drawable/profile_avatar.png differ diff --git a/app/src/main/res/drawable/shipper_icon.png b/app/src/main/res/drawable/shipper_icon.png new file mode 100644 index 0000000..3e0b28f Binary files /dev/null and b/app/src/main/res/drawable/shipper_icon.png differ diff --git a/app/src/main/res/font/bebas.ttf b/app/src/main/res/font/bebas.ttf new file mode 100644 index 0000000..ead2c4d Binary files /dev/null and b/app/src/main/res/font/bebas.ttf differ diff --git a/app/src/main/res/font/opensans.ttf b/app/src/main/res/font/opensans.ttf new file mode 100644 index 0000000..ba6db9b Binary files /dev/null and b/app/src/main/res/font/opensans.ttf differ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..3743382 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_order_detail.xml b/app/src/main/res/layout/activity_order_detail.xml new file mode 100644 index 0000000..005c0fe --- /dev/null +++ b/app/src/main/res/layout/activity_order_detail.xml @@ -0,0 +1,376 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_sign_in.xml b/app/src/main/res/layout/activity_sign_in.xml new file mode 100644 index 0000000..c2c95e2 --- /dev/null +++ b/app/src/main/res/layout/activity_sign_in.xml @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_order.xml b/app/src/main/res/layout/fragment_order.xml new file mode 100644 index 0000000..8f2676b --- /dev/null +++ b/app/src/main/res/layout/fragment_order.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_profile.xml b/app/src/main/res/layout/fragment_profile.xml new file mode 100644 index 0000000..2906dad --- /dev/null +++ b/app/src/main/res/layout/fragment_profile.xml @@ -0,0 +1,237 @@ + + + + + + + + + +