Compare commits

..

No commits in common. "master" and "kotlin_refactor" have entirely different histories.

231 changed files with 901 additions and 3204 deletions

View File

@ -1,5 +1,8 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<AndroidXmlCodeStyleSettings>
<option name="USE_CUSTOM_SETTINGS" value="true" />
</AndroidXmlCodeStyleSettings>
<JetCodeStyleSettings>
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</JetCodeStyleSettings>
@ -9,113 +12,6 @@
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="USE_TAB_CHARACTER" value="true" />
</indentOptions>
<arrangement>
<rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>ANDROID_ATTRIBUTE_ORDER</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
<codeStyleSettings language="kotlin">
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />

13
.idea/compiler.xml generated
View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel>
<module name="app" target="1.8" />
<module name="cocart" target="1.7" />
<module name="core" target="1.7" />
<module name="firebasecart" target="1.8" />
<module name="offlinecart" target="1.8" />
<module name="woodroid" target="1.8" />
</bytecodeTargetLevel>
</component>
</project>

7
.idea/gradle.xml generated
View File

@ -1,25 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="delegatedBuild" value="false" />
<option name="testRunner" value="PLATFORM" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
<option value="$PROJECT_DIR$/cocart" />
<option value="$PROJECT_DIR$/core" />
<option value="$PROJECT_DIR$/firebasecart" />
<option value="$PROJECT_DIR$/offlinecart" />
<option value="$PROJECT_DIR$/woodroid" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
<option name="testRunner" value="PLATFORM" />
</GradleProjectSettings>
</option>
</component>

View File

@ -1,8 +1,5 @@
<img src="https://github.com/gilokimu/woocommerce-android-sdk/raw/master/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png"/>
# Woocommerce Android SDK
This is an woocommerce api client for android
<img src="https://github.com/gilokimu/woocommerce-android-sdk/raw/master/screens/screenshot-1553916911644.jpg" width="285"/> <img src="https://github.com/gilokimu/woocommerce-android-sdk/raw/master/screens/screenshot-1553916952806.jpg" width="285"/> <img src="https://github.com/gilokimu/woocommerce-android-sdk/raw/master/screens/screenshot-1553916959446.jpg" width="285"/> <img src="https://github.com/gilokimu/woocommerce-android-sdk/raw/master/screens/screenshot-1553916965766.jpg" width="285"/> <img src="https://github.com/gilokimu/woocommerce-android-sdk/raw/master/screens/screenshot-1553916980710.jpg" width="285"/> <img src="https://github.com/gilokimu/woocommerce-android-sdk/raw/master/screens/screenshot-1553916989454.jpg" width="285"/> <img src="https://github.com/gilokimu/woocommerce-android-sdk/raw/master/screens/screenshot-1553917011606.jpg" width="285"/>
@ -60,16 +57,6 @@ Generate API credentials (Consumer Key & Consumer Secret) following this instruc
Check out the WooCommerce API endpoints and data that can be manipulated in <https://woocommerce.github.io/woocommerce-rest-api-docs/>.
## Demo
I have left consumer key and secret within the app, for you to test the app without an installation of wordpress. To use my installation of wordpress, here are the credentials:
username: demo
password: demo2019
https://gilo.me/store/wp-admin
PS/ Do no harm
## Setup
Setup for the new WP REST API integration (WooCommerce 2.6 or later):
@ -237,10 +224,5 @@ The sample app implements an MVVM approach which would look slightly different f
## Contribution
Contributions are highly welcomed, just create a PR
## Slack
You can also reach out through <a href="https://join.slack.com/t/woodroid/shared_invite/enQtODg1ODYzMDAzOTcxLTE4NDA0MTYyYjY5ZmVmNTU4OTEzYWQzZDcwN2Y1ZTZkMzk4ZDY0ZGU4NmZlMzQ1NjlhM2RlZDc4Mjc4ZjE2NzI">slack</a> in case of any issues with installation or feature request
## Love the Project?
You can donate to support the project futher.<a class="donate-with-crypto" href="https://commerce.coinbase.com/checkout/3efb7008-27b1-4c64-934b-791e5c1a6cda"> Donate with Crypto </a>

View File

@ -4,15 +4,15 @@ apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion 29
compileSdkVersion 28
defaultConfig {
applicationId "me.gilo.woodroid.app"
minSdkVersion 16
targetSdkVersion 29
targetSdkVersion 28
versionCode 1
versionName "1.0"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
@ -33,52 +33,17 @@ android {
}
compileOptions {
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
dataBinding {
enabled = true
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
}
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
// To inline the bytecode built with JVM target 1.8 into
// bytecode that is being built with JVM target 1.6. (e.g. navArgs)
}
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == "com.android.support") {
if (!requested.name.startsWith("multidex")) {
details.useVersion "26.+"
}
}
}
all*.exclude group: 'com.google.guava', module: 'listenablefuture'
}
ext {
arch_version = '1.1.1'
firebase_version = '11.8.0'
support_lib_version = '28.0.0'
dagger_version = '2.14.1'
play_services = '15.0.1'
roomVersion = '1.1.1'
coroutinesVersion = "1.1.1"
dagger_version = '2.15'
}
kapt {
generateStubs = true
}
@ -86,125 +51,63 @@ kapt {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
implementation 'androidx.paging:paging-runtime-ktx:2.1.0'
implementation 'com.google.android.gms:play-services-auth:17.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:design:28.0.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
// Support Libs
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.vectordrawable:vectordrawable-animated:1.1.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.browser:browser:1.0.0'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.viewpager2:viewpager2:1.0.0-rc01'
//firebase stuff
implementation 'com.google.firebase:firebase-database:19.2.0'
implementation 'com.google.firebase:firebase-auth:19.1.0'
implementation 'com.google.firebase:firebase-core:17.2.1'
implementation 'com.google.firebase:firebase-firestore:21.3.0'
implementation 'com.google.firebase:firebase-storage:19.1.0'
implementation 'com.google.firebase:firebase-database:16.0.4'
implementation 'com.google.firebase:firebase-auth:16.0.4'
implementation 'com.google.firebase:firebase-core:16.0.4'
implementation 'com.google.firebase:firebase-firestore:17.1.1'
implementation 'com.google.firebase:firebase-storage:16.0.4'
implementation 'com.firebaseui:firebase-ui-database:4.2.0'
implementation 'com.firebaseui:firebase-ui-firestore:4.2.0'
implementation 'com.firebaseui:firebase-ui-storage:4.2.0'
implementation 'com.google.firebase:firebase-messaging:20.0.1'
implementation 'com.google.android.gms:play-services-maps:17.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.google.firebase:firebase-messaging:17.1.0'
implementation 'io.github.inflationx:calligraphy3:3.0.0'
implementation 'io.github.inflationx:viewpump:2.0.3'
implementation 'io.github.inflationx:viewpump:1.0.0'
implementation 'org.greenrobot:eventbus:3.1.1'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.android.support:support-v4:28.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation project(path: ':woodroid')
// implementation 'com.github.gilokimu:woodroid:0.2.0'
implementation 'de.hdodenhof:circleimageview:2.1.0'
implementation 'com.romandanylyk:pageindicatorview:0.2.0@aar'
// Android architecture components
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0-rc02"
kapt "androidx.lifecycle:lifecycle-compiler:2.2.0-rc02"
implementation 'androidx.core:core-ktx:1.1.0'
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0-rc02"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0-rc02"
// Room components
implementation "androidx.room:room-runtime:2.2.1"
kapt "androidx.room:room-compiler:2.2.1"
androidTestImplementation "androidx.room:room-testing:2.2.1"
implementation "android.arch.lifecycle:extensions:$arch_version"
annotationProcessor "android.arch.lifecycle:compiler:$arch_version"
implementation "android.arch.paging:runtime:1.0.1"
// Dagger.
implementation "com.google.dagger:dagger:2.15"
implementation "com.google.dagger:dagger-android:2.15"
implementation "com.google.dagger:dagger-android-support:2.15"
kapt "com.google.dagger:dagger-android-processor:2.15"
kapt "com.google.dagger:dagger-compiler:2.15"
implementation "com.google.dagger:dagger:$dagger_version"
implementation "com.google.dagger:dagger-android:$dagger_version"
implementation "com.google.dagger:dagger-android-support:$dagger_version"
kapt "com.google.dagger:dagger-android-processor:$dagger_version"
kapt "com.google.dagger:dagger-compiler:$dagger_version"
// Third-party libraries
implementation 'net.danlew:android.joda:2.9.9.4'
implementation 'com.readystatesoftware.systembartint:systembartint:1.0.3'
implementation 'com.akexorcist:googledirectionlibrary:1.0.5'
//noinspection GradleDynamicVersion
implementation 'com.google.maps.android:android-maps-utils:0.5+'
implementation 'com.github.aarsy.googlemapsanimations:googlemapsanimations:1.0.5'
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.jakewharton.retrofit:retrofit1-okhttp3-client:1.1.0'
implementation 'io.reactivex:rxandroid:1.2.1'
implementation 'io.reactivex:rxjava:1.3.0'
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.room:room-runtime:2.2.2'
kapt 'androidx.room:room-compiler:2.2.2'
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation 'org.greenrobot:eventbus:3.1.1'
implementation "com.hootsuite.android:nachos:1.1.1"
implementation 'com.miguelcatalan:materialsearchview:1.4.0'
implementation 'me.relex:circleindicator:1.2.2@aar'
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion"
implementation 'net.danlew:android.joda:2.9.9.4'
implementation project(path: ':woodroid')
implementation project(path: ':firebasecart')
implementation project(path: ':core')
implementation project(path: ':cocart')
implementation project(path: ':offlinecart')
implementation 'org.greenrobot:eventbus:3.1.1'
implementation 'android.arch.lifecycle:livedata:1.1.1'
debugImplementation 'im.dino:dbinspector:3.4.1@aar'
implementation 'org.fabiomsr:moneytextview:1.1.0'
}

View File

@ -3,14 +3,8 @@ package me.gilo.woodroid.app;
public class Config {
public static String CURRENCY_SYMBOL = "Ksh.";
public static String siteUrl = "https://gilo.me/store"; //sometimes you need to append /index.php at the end
public static String consumerKey = "ck_4ff858c97e1ed097cc24cb95593b2bcc45e835d5";
public static String consumerSecret = "cs_24865d302c443dec4a1391e5d2a438ba46e95cb6";
//sorry guys :( someday I am gonna add live and debug to have this stored somewhere
//for now commenting will do
// public static String siteUrl = "http://192.168.100.61/shop/index.php";
// public static String consumerKey = "ck_da34628a4a69128001876492b842be4cd3c76bf8";
// public static String consumerSecret = "cs_c3c70248288a60bc21a0cddc81acdc018df1632d";
public static String siteUrl = "http://192.168.100.61/shop/index.php";
public static String consumerKey = "ck_da34628a4a69128001876492b842be4cd3c76bf8";
public static String consumerSecret = "cs_c3c70248288a60bc21a0cddc81acdc018df1632d";
}

View File

@ -2,7 +2,7 @@ package me.gilo.woodroid.app
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.support.v7.app.AppCompatActivity
import android.util.Log
import com.google.firebase.auth.FirebaseAuth
import me.gilo.raison.ui.user.onboarding.SignInActivity

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.adapter
import androidx.recyclerview.widget.RecyclerView
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.ViewGroup
import me.gilo.woodroid.app.R

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.adapter
import androidx.recyclerview.widget.RecyclerView
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.ViewGroup
import me.gilo.woodroid.app.R

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.adapter
import androidx.recyclerview.widget.RecyclerView
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.ViewGroup
import me.gilo.woodroid.app.R

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.adapter
import androidx.recyclerview.widget.RecyclerView
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.ViewGroup
import me.gilo.woodroid.app.R

View File

@ -2,7 +2,7 @@ package me.gilo.woodroid.app.adapter
import android.content.Context
import androidx.viewpager.widget.PagerAdapter
import android.support.v4.view.PagerAdapter
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.adapter
import androidx.recyclerview.widget.RecyclerView
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.ViewGroup
import me.gilo.woodroid.app.R

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.adapter
import androidx.recyclerview.widget.RecyclerView
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.ViewGroup
import me.gilo.woodroid.app.R

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.adapter
import androidx.recyclerview.widget.RecyclerView
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.ViewGroup
import me.gilo.woodroid.app.R

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.adapter
import androidx.recyclerview.widget.RecyclerView
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.ViewGroup
import me.gilo.woodroid.app.R

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.adapter
import androidx.recyclerview.widget.RecyclerView
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.ViewGroup
import me.gilo.woodroid.app.R

View File

@ -2,7 +2,7 @@ package me.gilo.woodroid.app.adapter.viewholder
import android.content.Context
import android.content.Intent
import androidx.recyclerview.widget.RecyclerView
import android.support.v7.widget.RecyclerView
import android.text.Html
import android.view.View
import android.widget.ImageView

View File

@ -2,7 +2,7 @@ package me.gilo.woodroid.app.adapter.viewholder
import android.content.Context
import android.content.Intent
import androidx.recyclerview.widget.RecyclerView
import android.support.v7.widget.RecyclerView
import android.view.View
import android.widget.TextView
import me.gilo.woodroid.app.R

View File

@ -2,7 +2,7 @@ package me.gilo.woodroid.app.adapter.viewholder
import android.content.Context
import android.content.Intent
import androidx.recyclerview.widget.RecyclerView
import android.support.v7.widget.RecyclerView
import android.text.Html
import android.view.View
import android.widget.TextView

View File

@ -2,7 +2,7 @@ package me.gilo.woodroid.app.adapter.viewholder;
import android.content.Context;
import android.content.Intent;
import androidx.recyclerview.widget.RecyclerView;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.TextView;
import me.gilo.woodroid.app.R;

View File

@ -2,7 +2,7 @@ package me.gilo.woodroid.app.adapter.viewholder
import android.content.Context
import android.content.Intent
import androidx.recyclerview.widget.RecyclerView
import android.support.v7.widget.RecyclerView
import android.text.SpannableString
import android.view.View
import android.widget.TextView

View File

@ -1,7 +1,7 @@
package me.gilo.woodroid.app.adapter.viewholder
import android.content.Context
import androidx.recyclerview.widget.RecyclerView
import android.support.v7.widget.RecyclerView
import android.text.Html
import android.view.View
import android.widget.ImageView

View File

@ -2,16 +2,16 @@ package me.gilo.woodroid.app.adapter.viewholder
import android.content.Context
import android.content.Intent
import androidx.recyclerview.widget.RecyclerView
import android.support.v7.widget.RecyclerView
import android.text.Html
import android.view.View
import android.widget.ImageView
import android.widget.TextView
import com.squareup.picasso.Picasso
import me.gilo.woodroid.models.Product
import android.text.SpannableString
import me.gilo.woodroid.app.R
import me.gilo.woodroid.app.ui.product.ProductActivity
import me.gilo.woodroid.models.Product
class ProductViewHolder(val context: Context, itemView: View) :

View File

@ -1,9 +1,9 @@
package me.gilo.woodroid.app.common;
import android.annotation.SuppressLint;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModelProviders;
import android.arch.lifecycle.ViewModel;
import android.arch.lifecycle.ViewModelProvider;
import android.arch.lifecycle.ViewModelProviders;
import android.content.Context;
import dagger.android.support.DaggerAppCompatActivity;
import io.github.inflationx.viewpump.ViewPumpContextWrapper;

View File

@ -1,7 +1,7 @@
package me.gilo.woodroid.app.common;
import androidx.lifecycle.LiveData;
import androidx.annotation.NonNull;
import android.arch.lifecycle.LiveData;
import android.support.annotation.NonNull;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.firestore.DocumentReference;

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.common
import androidx.lifecycle.LiveData
import android.arch.lifecycle.LiveData
import com.google.android.gms.tasks.OnCompleteListener
import com.google.android.gms.tasks.Task

View File

@ -1,7 +1,7 @@
package me.gilo.woodroid.app.common;
import androidx.lifecycle.LiveData;
import androidx.annotation.NonNull;
import android.arch.lifecycle.LiveData;
import android.support.annotation.NonNull;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.common;
import androidx.lifecycle.LiveData;
import android.arch.lifecycle.LiveData;
import com.google.firebase.firestore.*;

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.common;
import androidx.recyclerview.widget.RecyclerView;
import android.support.v7.widget.RecyclerView;
/**
* Created by amrro <amr.elghobary@gmail.com> on 9/15/17.

View File

@ -1,7 +1,7 @@
package me.gilo.woodroid.app.common;
import androidx.lifecycle.LiveData;
import androidx.annotation.NonNull;
import android.arch.lifecycle.LiveData;
import android.support.annotation.NonNull;
import com.google.firebase.firestore.*;
import me.gilo.woodroid.app.models.Model;

View File

@ -1,7 +1,7 @@
package me.gilo.woodroid.app.common;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import java.util.List;

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.common;
import androidx.lifecycle.LiveData;
import android.arch.lifecycle.LiveData;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

View File

@ -5,7 +5,6 @@ import dagger.Provides
import me.gilo.woodroid.app.Config
import me.gilo.woodroid.app.WcApp
import me.gilo.woodroid.Woocommerce
import me.gilo.woodroid.offlinecart.repo.RoomCartRepository
import javax.inject.Singleton
@ -36,11 +35,4 @@ class AppModule {
.build()
}
@Provides
@Singleton
internal fun providesRoomCartRepository(): RoomCartRepository = RoomCartRepository(app!!.baseContext)
}

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.di;
import androidx.lifecycle.ViewModel;
import android.arch.lifecycle.ViewModel;
import dagger.MapKey;
import java.lang.annotation.*;

View File

@ -1,7 +1,7 @@
package me.gilo.woodroid.app.di
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import android.arch.lifecycle.ViewModel
import android.arch.lifecycle.ViewModelProvider
import dagger.Binds
import dagger.Module
import dagger.multibindings.IntoMap

View File

@ -1,4 +1,5 @@
package me.gilo.woodroid.app.models;
import me.gilo.woodroid.models.Product;

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.models;
import androidx.annotation.NonNull;
import android.support.annotation.NonNull;
import com.google.firebase.firestore.IgnoreExtraProperties;
import com.google.firebase.firestore.ServerTimestamp;

View File

@ -12,11 +12,8 @@ import me.gilo.woodroid.app.common.QueryLiveData
import me.gilo.woodroid.app.common.WooLiveData
import me.gilo.woodroid.app.models.CartLineItem
import me.gilo.woodroid.Woocommerce
import me.gilo.woodroid.core.cart.Cart
import me.gilo.woodroid.core.cart.CartItem
import me.gilo.woodroid.models.LineItem
import me.gilo.woodroid.models.Product
import me.gilo.woodroid.offlinecart.repo.RoomCartRepository
import javax.inject.Inject
open class CartRepository @Inject
@ -74,4 +71,26 @@ constructor() {
}
}
fun addToCart(product: Product): CompletionGenericLiveData<DocumentReference> {
val completion = CompletionGenericLiveData<DocumentReference>()
val lineItem = CartLineItem()
lineItem.setProductId(product.id)
lineItem.product = product
lineItem.setQuantity(1)
cart.add(lineItem).addOnCompleteListener(completion)
return completion
}
fun cart(context: Context): WooLiveData<Map<String, LineItem>> {
val callBack = WooLiveData<Map<String, LineItem>>()
woocommerce.CartRepository(context).cart().enqueue(callBack)
return callBack
}
}

View File

@ -18,7 +18,7 @@ constructor() {
fun create(category: Category): WooLiveData<Category> {
val callBack = WooLiveData<Category>()
woocommerce.CategoryRepository().create(category).enqueue(callBack)
woocommerce!!.CategoryRepository().create(category).enqueue(callBack)
return callBack
}
@ -26,42 +26,42 @@ constructor() {
fun category(id: Int): WooLiveData<Category> {
val callBack = WooLiveData<Category>()
woocommerce.CategoryRepository().category(id).enqueue(callBack)
woocommerce!!.CategoryRepository().category(id).enqueue(callBack)
return callBack
}
fun categories(): WooLiveData<List<Category>> {
val callBack = WooLiveData<List<Category>>()
woocommerce.CategoryRepository().categories().enqueue(callBack)
woocommerce!!.CategoryRepository().categories().enqueue(callBack)
return callBack
}
fun categories(productCategoryFilter: ProductCategoryFilter): WooLiveData<List<Category>> {
val callBack = WooLiveData<List<Category>>()
woocommerce.CategoryRepository().categories(productCategoryFilter).enqueue(callBack)
woocommerce!!.CategoryRepository().categories(productCategoryFilter).enqueue(callBack)
return callBack
}
fun update(id: Int, category: Category): WooLiveData<Category> {
val callBack = WooLiveData<Category>()
woocommerce.CategoryRepository().update(id, category).enqueue(callBack)
woocommerce!!.CategoryRepository().update(id, category).enqueue(callBack)
return callBack
}
fun delete(id: Int): WooLiveData<Category> {
val callBack = WooLiveData<Category>()
woocommerce.CategoryRepository().delete(id).enqueue(callBack)
woocommerce!!.CategoryRepository().delete(id).enqueue(callBack)
return callBack
}
fun delete(id: Int, force: Boolean): WooLiveData<Category> {
val callBack = WooLiveData<Category>()
woocommerce.CategoryRepository().delete(id, force).enqueue(callBack)
woocommerce!!.CategoryRepository().delete(id, force).enqueue(callBack)
return callBack
}

View File

@ -1,7 +1,7 @@
package me.gilo.woodroid.app.ui
import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import android.support.v7.app.AppCompatActivity
import io.github.inflationx.viewpump.ViewPumpContextWrapper
import me.gilo.woodroid.app.Config
import me.gilo.woodroid.app.ui.state.ProgressDialogFragment

View File

@ -1,7 +1,7 @@
package me.gilo.woodroid.app.ui
import android.os.Bundle
import androidx.recyclerview.widget.LinearLayoutManager
import android.support.v7.widget.LinearLayoutManager
import me.gilo.woodroid.app.R
import kotlinx.android.synthetic.main.activity_menu.*
@ -18,11 +18,7 @@ class MenuActivity : BaseActivity() {
title = "Menu"
val layoutManager = LinearLayoutManager(
baseContext,
LinearLayoutManager.VERTICAL,
false
)
val layoutManager = LinearLayoutManager(baseContext, LinearLayoutManager.VERTICAL, false)
rvMenu.layoutManager = layoutManager
rvMenu.isNestedScrollingEnabled = false

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.ui
import androidx.lifecycle.ViewModel
import android.arch.lifecycle.ViewModel
import android.content.Context
import android.content.Intent
import android.view.Menu
@ -87,7 +87,7 @@ abstract class WooDroidActivity<T : ViewModel> : BaseActivity() {
open fun cart() {
var viewModel = getViewModel(CartViewModel::class.java)
viewModel.cart().observe(this, androidx.lifecycle.Observer { response ->
viewModel.cart().observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {

View File

@ -1,7 +1,7 @@
package me.gilo.woodroid.app.ui.checkout
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.support.v7.app.AppCompatActivity
import me.gilo.woodroid.app.R
import kotlinx.android.synthetic.main.activity_checkout.*

View File

@ -2,7 +2,7 @@ package me.gilo.woodroid.app.ui.coupon
import android.content.Intent
import android.os.Bundle
import androidx.recyclerview.widget.LinearLayoutManager
import android.support.v7.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.activity_coupons.*
import kotlinx.android.synthetic.main.content_coupons.*
import me.gilo.woodroid.app.R
@ -28,11 +28,7 @@ class CouponsActivity : BaseActivity() {
title = "Coupons"
val layoutManager = LinearLayoutManager(
baseContext,
LinearLayoutManager.VERTICAL,
false
)
val layoutManager = LinearLayoutManager(baseContext, LinearLayoutManager.VERTICAL, false)
rvCoupons.layoutManager = layoutManager
rvCoupons.isNestedScrollingEnabled = false

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.ui.customer
import androidx.lifecycle.Observer
import android.arch.lifecycle.Observer
import android.content.Context
import android.os.Bundle
import android.widget.Toast

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.ui.customer
import androidx.lifecycle.Observer
import android.arch.lifecycle.Observer
import android.content.Context
import android.os.Bundle
import android.widget.Toast

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.ui.customer
import androidx.lifecycle.Observer
import android.arch.lifecycle.Observer
import android.content.Context
import android.content.Intent
import android.os.Bundle

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.ui.customer
import androidx.lifecycle.Observer
import android.arch.lifecycle.Observer
import android.content.Context
import android.os.Bundle
import android.widget.Toast

View File

@ -1,8 +1,8 @@
package me.gilo.woodroid.app.ui.home
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
import android.support.v4.app.Fragment
import android.support.v7.widget.LinearLayoutManager
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@ -46,11 +46,7 @@ class CategoryFragment : Fragment() {
viewModel = (activity as HomeActivity).getViewModel(CategoryViewModel::class.java)
val layoutManager = LinearLayoutManager(
activity,
LinearLayoutManager.VERTICAL,
false
)
val layoutManager = LinearLayoutManager(activity, LinearLayoutManager.VERTICAL, false)
rvCategory.layoutManager = layoutManager
rvCategory.isNestedScrollingEnabled = false
@ -68,7 +64,7 @@ class CategoryFragment : Fragment() {
val filter = ProductCategoryFilter()
filter.setPer_page(50)
viewModel.categories(filter).observe(this, androidx.lifecycle.Observer { response ->
viewModel.categories(filter).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
}

View File

@ -1,8 +1,8 @@
package me.gilo.woodroid.app.ui.home
import android.os.Bundle
import com.google.android.material.bottomnavigation.BottomNavigationView
import androidx.fragment.app.Fragment
import android.support.design.widget.BottomNavigationView
import android.support.v4.app.Fragment
import kotlinx.android.synthetic.main.activity_home.*
import me.gilo.woodroid.app.R
import me.gilo.woodroid.app.ui.WooDroidActivity

View File

@ -1,8 +1,8 @@
package me.gilo.woodroid.app.ui.home
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
import android.support.v4.app.Fragment
import android.support.v7.widget.LinearLayoutManager
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@ -60,11 +60,7 @@ class HomeFragment : Fragment() {
}
private fun setUpProducts() {
val layoutManager = LinearLayoutManager(
activity,
LinearLayoutManager.HORIZONTAL,
false
)
val layoutManager = LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
rvShop.layoutManager = layoutManager
rvShop.isNestedScrollingEnabled = false
@ -78,11 +74,7 @@ class HomeFragment : Fragment() {
private fun setUpHoodies() {
val layoutManager = LinearLayoutManager(
activity,
LinearLayoutManager.HORIZONTAL,
false
)
val layoutManager = LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
rvHoodies.layoutManager = layoutManager
rvHoodies.isNestedScrollingEnabled = false
@ -110,7 +102,7 @@ class HomeFragment : Fragment() {
}
private fun products() {
viewModel.products().observe(viewLifecycleOwner, androidx.lifecycle.Observer { response ->
viewModel.products().observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
@ -141,7 +133,7 @@ class HomeFragment : Fragment() {
}
private fun products(filter: ProductFilter) {
viewModel.products(filter).observe(viewLifecycleOwner, androidx.lifecycle.Observer { response ->
viewModel.products(filter).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
}

View File

@ -2,7 +2,7 @@ package me.gilo.woodroid.app.ui.home
import android.content.Intent
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.support.v4.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.ui.onboarding
import androidx.lifecycle.Observer
import android.arch.lifecycle.Observer
import android.content.Context
import android.content.Intent
import android.os.Bundle

View File

@ -1,6 +1,6 @@
package me.gilo.raison.ui.user.onboarding
import androidx.lifecycle.Observer
import android.arch.lifecycle.Observer
import android.content.Context
import android.content.Intent
import android.os.Bundle

View File

@ -1,6 +1,6 @@
package me.gilo.raison.ui.user.onboarding
import androidx.lifecycle.Observer
import android.arch.lifecycle.Observer
import android.content.Context
import android.content.Intent
import android.os.Bundle

View File

@ -1,8 +1,8 @@
package me.gilo.woodroid.app.ui.onboarding
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.google.android.material.snackbar.Snackbar
import android.support.design.widget.Snackbar
import android.support.v7.app.AppCompatActivity
import me.gilo.woodroid.app.R
import kotlinx.android.synthetic.main.activity_user_details.*

View File

@ -2,7 +2,7 @@ package me.gilo.woodroid.app.ui.order
import android.content.Intent
import android.os.Bundle
import androidx.recyclerview.widget.LinearLayoutManager
import android.support.v7.widget.LinearLayoutManager
import android.view.View
import kotlinx.android.synthetic.main.activity_my_orders.*
import kotlinx.android.synthetic.main.content_my_orders.*
@ -31,11 +31,7 @@ class MyOrdersActivity : WooDroidActivity<OrderViewModel>() {
viewModel = getViewModel(OrderViewModel::class.java)
title = "My Orders"
val layoutManager = LinearLayoutManager(
baseContext,
LinearLayoutManager.VERTICAL,
false
)
val layoutManager = LinearLayoutManager(baseContext, LinearLayoutManager.VERTICAL, false)
rvOrders.layoutManager = layoutManager
rvOrders.isNestedScrollingEnabled = false
@ -62,7 +58,7 @@ class MyOrdersActivity : WooDroidActivity<OrderViewModel>() {
}
private fun orders() {
viewModel.orders().observe(this, androidx.lifecycle.Observer { response ->
viewModel.orders().observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
showLoading()

View File

@ -1,7 +1,7 @@
package me.gilo.woodroid.app.ui.order
import android.os.Bundle
import androidx.recyclerview.widget.LinearLayoutManager
import android.support.v7.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.activity_order.*
import kotlinx.android.synthetic.main.content_order.*
import me.gilo.woodroid.app.R
@ -35,11 +35,7 @@ class OrderActivity : WooDroidActivity<OrderViewModel>() {
orderId = intent.getIntExtra("orderId", 0)
val layoutManager = LinearLayoutManager(
baseContext,
LinearLayoutManager.VERTICAL,
false
)
val layoutManager = LinearLayoutManager(baseContext, LinearLayoutManager.VERTICAL, false)
rvCart.layoutManager = layoutManager
rvCart.isNestedScrollingEnabled = false
@ -54,7 +50,7 @@ class OrderActivity : WooDroidActivity<OrderViewModel>() {
}
private fun order(orderId : Int) {
viewModel.order(orderId).observe(this, androidx.lifecycle.Observer { response ->
viewModel.order(orderId).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
showLoading()
@ -101,7 +97,7 @@ class OrderActivity : WooDroidActivity<OrderViewModel>() {
var filter = ProductFilter()
filter.setInclude(productIds)
viewModel.products(filter).observe(this, androidx.lifecycle.Observer { response ->
viewModel.products(filter).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
showLoading()

View File

@ -1,10 +1,10 @@
package me.gilo.woodroid.app.ui.product
import androidx.lifecycle.Observer
import android.arch.lifecycle.Observer
import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.recyclerview.widget.LinearLayoutManager
import android.support.v7.widget.LinearLayoutManager
import android.view.View
import android.widget.Toast
import io.github.inflationx.viewpump.ViewPumpContextWrapper
@ -49,11 +49,7 @@ class CartActivity : WooDroidActivity<CartViewModel>() {
viewModel = getViewModel(CartViewModel::class.java)
title = "Cart"
val layoutManager = LinearLayoutManager(
baseContext,
LinearLayoutManager.VERTICAL,
false
)
val layoutManager = LinearLayoutManager(baseContext, LinearLayoutManager.VERTICAL, false)
rvCart.layoutManager = layoutManager
rvCart.isNestedScrollingEnabled = false
@ -73,7 +69,7 @@ class CartActivity : WooDroidActivity<CartViewModel>() {
}
override fun cart() {
viewModel.cart().observe(this, androidx.lifecycle.Observer { response ->
viewModel.cart().observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
showLoading()
@ -110,7 +106,7 @@ class CartActivity : WooDroidActivity<CartViewModel>() {
private fun createOrder(order : Order) {
viewModel.createOrder(order).observe(this, androidx.lifecycle.Observer { response ->
viewModel.createOrder(order).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
showLoading()
@ -221,7 +217,7 @@ class CartActivity : WooDroidActivity<CartViewModel>() {
}
private fun updateCart(cartLineItem: CartLineItem, quantity: Int) {
viewModel.setQuantity(cartLineItem, quantity).observe(this, androidx.lifecycle.Observer { response ->
viewModel.setQuantity(cartLineItem, quantity).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
@ -246,7 +242,7 @@ class CartActivity : WooDroidActivity<CartViewModel>() {
private fun delete(cartLineItem: CartLineItem) {
viewModel.deleteItem(cartLineItem).observe(this, androidx.lifecycle.Observer { response ->
viewModel.deleteItem(cartLineItem).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {

View File

@ -3,6 +3,7 @@ package me.gilo.woodroid.app.ui.product
import android.content.Intent
import android.content.res.ColorStateList
import android.os.Bundle
import android.support.v4.content.ContextCompat
import android.text.Html
import android.view.Menu
import android.view.MenuItem
@ -10,8 +11,6 @@ import android.view.View
import android.widget.FrameLayout
import android.widget.TextView
import android.widget.Toast
import androidx.core.content.ContextCompat
import androidx.lifecycle.Observer
import kotlinx.android.synthetic.main.activity_product.*
import kotlinx.android.synthetic.main.content_product.*
import me.gilo.woodroid.app.R
@ -21,11 +20,8 @@ import me.gilo.woodroid.app.common.Status
import me.gilo.woodroid.app.events.ProductEvent
import me.gilo.woodroid.app.models.CartLineItem
import me.gilo.woodroid.app.ui.state.ProgressDialogFragment
import me.gilo.woodroid.app.utils.AppUtils
import me.gilo.woodroid.app.viewmodels.ProductViewModel
import me.gilo.woodroid.core.cart.CartItem
import me.gilo.woodroid.models.Product
import me.gilo.woodroid.offlinecart.repo.RoomCartRepository
import org.greenrobot.eventbus.EventBus
@ -55,47 +51,67 @@ class ProductActivity : BaseActivity() {
if (productId != 0){
product(productId)
checkIfExistsInCart(productId)
}
cart()
}
private fun checkIfExistsInCart(productId: Int) {
RoomCartRepository(baseContext).exists(productId).observe(this, Observer {productExists ->
if (productExists) {
fab.backgroundTintList = ColorStateList.valueOf(resources.getColor(R.color.carnation_red))
fab.setImageDrawable(ContextCompat.getDrawable(baseContext, R.drawable.baseline_remove_shopping_cart_24))
}else{
fab.backgroundTintList = ColorStateList.valueOf(resources.getColor(R.color.colorPrimary))
fab.setImageDrawable(ContextCompat.getDrawable(baseContext, R.drawable.baseline_add_shopping_cart_24))
}
productInCart = productExists
})
}
private fun addToCart(product: Product) {
RoomCartRepository(baseContext).addToCart(
CartItem(
productId = product.id,
productImage = product.getFeatureImage(),
quantity = 1,
productPrice = product.price
)
viewModel.addToCart(product.id).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
)
}
Status.SUCCESS -> {
}
Status.ERROR -> {
}
Status.EMPTY -> {
}
}
})
}
private fun removeFromCart(cartLineItem: CartLineItem) {
viewModel.deleteItem(cartLineItem).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
}
Status.SUCCESS -> {
}
Status.ERROR -> {
toast("error : " + response.error().message)
}
Status.EMPTY -> {
}
}
})
}
private fun product(productId : Int) {
viewModel.product(productId).observe(this, androidx.lifecycle.Observer { response ->
viewModel.product(productId).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
flLoading.visibility = View.VISIBLE
@ -126,7 +142,7 @@ class ProductActivity : BaseActivity() {
private fun cart() {
viewModel.cart().observe(this, Observer { response ->
viewModel.cart().observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
@ -147,6 +163,8 @@ class ProductActivity : BaseActivity() {
}
}
toggleFab()
if (cartItems.size == 0 && tvCartCounter != null){
tvCartCounter?.visibility = View.GONE
}else{
@ -164,6 +182,7 @@ class ProductActivity : BaseActivity() {
Status.EMPTY -> {
productInCart = false
cartItems.clear()
toggleFab()
if (cartItems.size == 0 && tvCartCounter != null){
tvCartCounter?.visibility = View.GONE
@ -178,6 +197,17 @@ class ProductActivity : BaseActivity() {
}
private fun toggleFab() {
if (productInCart) {
fab.backgroundTintList = ColorStateList.valueOf(resources.getColor(R.color.carnation_red))
fab.setImageDrawable(ContextCompat.getDrawable(baseContext, R.drawable.baseline_remove_shopping_cart_24))
}else{
fab.backgroundTintList = ColorStateList.valueOf(resources.getColor(R.color.colorPrimary))
fab.setImageDrawable(ContextCompat.getDrawable(baseContext, R.drawable.baseline_add_shopping_cart_24))
}
}
private fun setUpPage(product: Product) {
tvTitle.text = product.name
tvDescription.text = Html.fromHtml(product.description)

View File

@ -4,8 +4,8 @@ import android.app.SearchManager
import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.ActionBarDrawerToggle
import androidx.recyclerview.widget.GridLayoutManager
import android.support.v7.app.ActionBarDrawerToggle
import android.support.v7.widget.GridLayoutManager
import android.widget.Toast
import io.github.inflationx.viewpump.ViewPumpContextWrapper
import me.gilo.woodroid.app.R
@ -46,8 +46,7 @@ class ProductSearchActivity : BaseActivity() {
title = "Search"
val layoutManager =
GridLayoutManager(baseContext, 2)
val layoutManager = GridLayoutManager(baseContext, 2)
rvShop.layoutManager = layoutManager
rvShop.isNestedScrollingEnabled = false
@ -73,7 +72,7 @@ class ProductSearchActivity : BaseActivity() {
}
private fun search(query : String) {
viewModel.search(query).observe(this, androidx.lifecycle.Observer { response ->
viewModel.search(query).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
showLoading("Performing search", "This will only take a short while")

View File

@ -2,8 +2,8 @@ package me.gilo.woodroid.app.ui.product
import android.content.Context
import android.os.Bundle
import androidx.core.view.GravityCompat
import androidx.recyclerview.widget.GridLayoutManager
import android.support.v4.view.GravityCompat
import android.support.v7.widget.GridLayoutManager
import android.view.Menu
import android.view.MenuItem
import android.widget.Toast
@ -16,7 +16,6 @@ import me.gilo.woodroid.app.adapter.ProductAdapter
import me.gilo.woodroid.app.common.BaseActivity
import me.gilo.woodroid.app.common.Status
import me.gilo.woodroid.app.ui.state.ProgressDialogFragment
import me.gilo.woodroid.app.utils.AppUtils
import me.gilo.woodroid.app.viewmodels.ProductViewModel
import me.gilo.woodroid.models.Product
import me.gilo.woodroid.models.filters.ProductFilter
@ -65,8 +64,7 @@ class ShopActivity : BaseActivity() {
}
private fun setUpPage() {
val layoutManager =
GridLayoutManager(baseContext, 2)
val layoutManager = GridLayoutManager(baseContext, 2)
rvShop.layoutManager = layoutManager
rvShop.isNestedScrollingEnabled = false
@ -105,7 +103,7 @@ class ShopActivity : BaseActivity() {
}
private fun products(filter: ProductFilter) {
viewModel.products(filter).observe(this, androidx.lifecycle.Observer { response ->
viewModel.products(filter).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
}
@ -136,11 +134,30 @@ class ShopActivity : BaseActivity() {
}
private fun cart() {
val cartKey = AppUtils(baseContext).cartSession
viewModel.cart(baseContext).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
}
Status.SUCCESS -> {
val cartResponse = response.data()
}
Status.ERROR -> {
}
Status.EMPTY -> {
}
}
})
}
private fun search(query : String) {
viewModel.search(query).observe(this, androidx.lifecycle.Observer { response ->
viewModel.search(query).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
}
@ -172,7 +189,7 @@ class ShopActivity : BaseActivity() {
}
private fun products() {
viewModel.products().observe(this, androidx.lifecycle.Observer { response ->
viewModel.products().observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {

View File

@ -1,7 +1,7 @@
package me.gilo.woodroid.app.ui.product.section
import android.os.Bundle
import androidx.fragment.app.DialogFragment
import android.support.v4.app.DialogFragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup

View File

@ -1,8 +1,8 @@
package me.gilo.woodroid.app.ui.product.section
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
import android.support.v4.app.Fragment
import android.support.v7.widget.LinearLayoutManager
import android.util.Log
import android.view.LayoutInflater
import android.view.View
@ -59,11 +59,7 @@ class ProductReviewsFragment : Fragment() {
private fun reviews(productId : Int) {
val layoutManager = LinearLayoutManager(
activity,
LinearLayoutManager.VERTICAL,
false
)
val layoutManager = LinearLayoutManager(activity, LinearLayoutManager.VERTICAL, false)
rvReviews.layoutManager = layoutManager
rvReviews.isNestedScrollingEnabled = false
@ -73,7 +69,7 @@ class ProductReviewsFragment : Fragment() {
rvReviews.adapter = productReviewAdapter
viewModel.reviews(productId).observe(this, androidx.lifecycle.Observer { response ->
viewModel.reviews(productId).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {
@ -140,7 +136,7 @@ class ProductReviewsFragment : Fragment() {
}
private fun save(review: ProductReview) {
viewModel.create(review).observe(this, androidx.lifecycle.Observer { response ->
viewModel.create(review).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {

View File

@ -1,8 +1,8 @@
package me.gilo.woodroid.app.ui.product.section
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
import android.support.v4.app.Fragment
import android.support.v7.widget.LinearLayoutManager
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@ -57,11 +57,7 @@ class RelatedProductsFragment : Fragment() {
}
private fun similarProducts(product: Product) {
val layoutManager = LinearLayoutManager(
activity,
LinearLayoutManager.HORIZONTAL,
false
)
val layoutManager = LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
rvShop.layoutManager = layoutManager
rvShop.isNestedScrollingEnabled = false
@ -73,7 +69,7 @@ class RelatedProductsFragment : Fragment() {
val filter = ProductFilter()
filter.setInclude(product.related_ids.toIntArray())
viewModel.products(filter).observe(this, androidx.lifecycle.Observer { response ->
viewModel.products(filter).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
Status.LOADING -> {

View File

@ -1,7 +1,7 @@
package me.gilo.woodroid.app.ui.state;
import android.os.Bundle;
import androidx.fragment.app.DialogFragment;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

View File

@ -4,7 +4,7 @@ import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Handler;
import androidx.annotation.StringRes;
import android.support.annotation.StringRes;
import android.util.Base64;
import android.view.inputmethod.InputMethodManager;
import android.widget.Toast;
@ -63,7 +63,7 @@ public class AppUtils {
public String getCartSession() {
SharedPreferences prefs = context.getSharedPreferences(MY_PREFS_NAME, context.MODE_PRIVATE);
return prefs.getString("cartSession", "");
return prefs.getString("cartSession", null);
}
public String getExpiry() {

View File

@ -1,7 +1,7 @@
package me.gilo.woodroid.app.utils;
import android.content.Context;
import androidx.recyclerview.widget.RecyclerView;
import android.support.v7.widget.RecyclerView;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;

View File

@ -16,9 +16,9 @@
package me.gilo.woodroid.app.utils;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
import androidx.annotation.NonNull;
import android.arch.lifecycle.ViewModel;
import android.arch.lifecycle.ViewModelProvider;
import android.support.annotation.NonNull;
import javax.inject.Inject;
import javax.inject.Provider;

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.viewmodels;
import androidx.lifecycle.ViewModel;
import android.arch.lifecycle.ViewModel;
import android.content.Context;
import com.google.firebase.firestore.DocumentReference;
import me.gilo.woodroid.app.common.CompletionGenericLiveData;
@ -10,7 +10,6 @@ import me.gilo.woodroid.app.models.CartLineItem;
import me.gilo.woodroid.app.repo.CartRepository;
import me.gilo.woodroid.app.repo.CustomerRepository;
import me.gilo.woodroid.app.repo.OrderRepository;
import me.gilo.woodroid.models.*;
import javax.inject.Inject;
@ -31,6 +30,10 @@ public final class CartViewModel extends ViewModel {
this.customerRepository = customerRepository;
}
public CompletionGenericLiveData<DocumentReference> addToCart(Product product) {
return cartRepository.addToCart(product);
}
public QueryLiveData<CartLineItem> cart() {
return cartRepository.cart();
}
@ -47,6 +50,10 @@ public final class CartViewModel extends ViewModel {
return cartRepository.setQuantity(cartLineItem, quantity);
}
public WooLiveData<Map<String, LineItem>> cart(Context context) {
return cartRepository.cart(context);
}
public WooLiveData<Order> createOrder(Order order) {
return orderRepository.create(order);
}

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.viewmodels;
import androidx.lifecycle.ViewModel;
import android.arch.lifecycle.ViewModel;
import me.gilo.woodroid.app.common.WooLiveData;
import me.gilo.woodroid.app.repo.CategoryRepository;
import me.gilo.woodroid.models.Category;

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.viewmodels;
import androidx.lifecycle.ViewModel;
import android.arch.lifecycle.ViewModel;
import me.gilo.woodroid.app.common.WooLiveData;
import me.gilo.woodroid.app.repo.CustomerRepository;
import me.gilo.woodroid.models.Customer;

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.viewmodels;
import androidx.lifecycle.ViewModel;
import android.arch.lifecycle.ViewModel;
import me.gilo.woodroid.app.common.WooLiveData;
import me.gilo.woodroid.app.repo.OrderRepository;
import me.gilo.woodroid.app.repo.ProductRepository;

View File

@ -1,7 +1,9 @@
package me.gilo.woodroid.app.viewmodels;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import android.arch.lifecycle.MutableLiveData;
import android.arch.lifecycle.ViewModel;
import android.content.Context;
import com.google.firebase.firestore.DocumentReference;
import me.gilo.woodroid.app.common.CompletionGenericLiveData;
import me.gilo.woodroid.app.common.QueryLiveData;
import me.gilo.woodroid.app.common.WooLiveData;
@ -9,7 +11,7 @@ import me.gilo.woodroid.app.models.CartLineItem;
import me.gilo.woodroid.app.repo.CartRepository;
import me.gilo.woodroid.app.repo.OrderRepository;
import me.gilo.woodroid.app.repo.ProductRepository;
import me.gilo.woodroid.models.LineItem;
import me.gilo.woodroid.models.Order;
import me.gilo.woodroid.models.Product;
import me.gilo.woodroid.models.ProductReview;
@ -48,6 +50,9 @@ public final class ProductViewModel extends ViewModel {
return productRepository.products();
}
public CompletionGenericLiveData<DocumentReference> addToCart(Product product) {
return cartRepository.addToCart(product);
}
public WooLiveData<Order> addToCart(int productId) {
return orderRepository.addToCart(productId);
@ -69,6 +74,10 @@ public final class ProductViewModel extends ViewModel {
return cartRepository.setQuantity(cartLineItem, quantity);
}
public WooLiveData<Map<String, LineItem>> cart(Context context) {
return cartRepository.cart(context);
}
public WooLiveData<List<Product>> products(ProductFilter filter) {
return productRepository.products(filter);
}

View File

@ -1,6 +1,6 @@
package me.gilo.woodroid.app.viewmodels;
import androidx.lifecycle.ViewModel;
import android.arch.lifecycle.ViewModel;
import me.gilo.woodroid.app.common.WooLiveData;
import me.gilo.woodroid.app.repo.ReviewRepository;
import me.gilo.woodroid.models.ProductReview;

View File

@ -1,7 +1,7 @@
package me.gilo.woodroid.app.viewmodels;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import android.arch.lifecycle.MutableLiveData;
import android.arch.lifecycle.ViewModel;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.auth.AuthResult;

View File

@ -1,10 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="#ffffff"
android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/>
</vector>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
@ -7,20 +7,20 @@
android:layout_height="match_parent"
tools:context=".app.ui.coupon.AddCouponActivity">
<com.google.android.material.appbar.AppBarLayout
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</com.google.android.material.appbar.AppBarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_add_coupon"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
@ -7,20 +7,20 @@
android:layout_height="match_parent"
tools:context=".app.ui.onboarding.AnonymousSignInActivity">
<com.google.android.material.appbar.AppBarLayout
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</com.google.android.material.appbar.AppBarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_anonymous_sign_in"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
@ -9,4 +9,4 @@
<include layout="@layout/customer_basic_details"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
@ -10,4 +10,4 @@
<include layout="@layout/customer_billing_address"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
tools:context=".app.ui.product.CartActivity">
<com.google.android.material.appbar.AppBarLayout
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</com.google.android.material.appbar.AppBarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_cart"/>
@ -58,7 +58,7 @@
<ImageView
android:layout_width="32dp"
android:layout_height="32dp"
app:srcCompat="@drawable/baseline_arrow_back_24"
android:src="@drawable/ic_action_navigation_arrow_back_inverted"
android:tint="#ffffff"
android:layout_gravity="right|center"
android:rotation="180"
@ -67,4 +67,4 @@
</FrameLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
@ -7,23 +7,23 @@
android:layout_height="match_parent"
tools:context=".app.ui.checkout.CheckoutActivity">
<com.google.android.material.appbar.AppBarLayout
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</com.google.android.material.appbar.AppBarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_checkout"/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -31,4 +31,4 @@
android:layout_margin="@dimen/fab_margin"
app:srcCompat="@android:drawable/ic_dialog_email"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
@ -7,20 +7,20 @@
android:layout_height="match_parent"
tools:context=".app.ui.coupon.CouponActivity">
<com.google.android.material.appbar.AppBarLayout
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</com.google.android.material.appbar.AppBarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_coupon"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
@ -7,23 +7,23 @@
android:layout_height="match_parent"
tools:context=".app.ui.coupon.CouponsActivity">
<com.google.android.material.appbar.AppBarLayout
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</com.google.android.material.appbar.AppBarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_coupons"/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -33,4 +33,4 @@
android:layout_margin="16dp" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -7,12 +7,12 @@
android:orientation="vertical"
tools:context=".app.ui.home.HomeActivity">
<com.google.android.material.appbar.AppBarLayout
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
@ -20,7 +20,7 @@
app:title="WooDroid"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</com.google.android.material.appbar.AppBarLayout>
</android.support.design.widget.AppBarLayout>
<LinearLayout
@ -31,7 +31,7 @@
android:orientation="vertical"
/>
<com.google.android.material.bottomnavigation.BottomNavigationView
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".app.MainActivity"
android:layout_margin="16dp"
>
@ -40,4 +41,4 @@
app:layout_constraintTop_toBottomOf="@+id/imageView2"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.constraint.ConstraintLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
@ -7,21 +7,21 @@
android:layout_height="match_parent"
tools:context=".app.ui.MenuActivity">
<com.google.android.material.appbar.AppBarLayout
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</com.google.android.material.appbar.AppBarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_menu"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
@ -7,19 +7,19 @@
android:layout_height="match_parent"
tools:context=".app.ui.order.MyOrdersActivity">
<com.google.android.material.appbar.AppBarLayout
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</com.google.android.material.appbar.AppBarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_my_orders"/>
@ -58,7 +58,7 @@
<ImageView
android:layout_width="32dp"
android:layout_height="32dp"
app:srcCompat="@drawable/baseline_arrow_back_24"
android:src="@drawable/ic_action_navigation_arrow_back_inverted"
android:tint="#ffffff"
android:layout_gravity="right|center"
android:rotation="180"
@ -67,4 +67,4 @@
</FrameLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
@ -7,22 +7,22 @@
android:layout_height="match_parent"
tools:context=".app.ui.order.OrderActivity">
<com.google.android.material.appbar.AppBarLayout
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</com.google.android.material.appbar.AppBarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_order"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
@ -7,19 +7,19 @@
android:layout_height="match_parent"
tools:context=".app.ui.product.ProductActivity">
<com.google.android.material.appbar.AppBarLayout
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</com.google.android.material.appbar.AppBarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_product"/>
@ -41,17 +41,17 @@
</FrameLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
app:srcCompat="@drawable/baseline_add_shopping_cart_24"
android:src="@drawable/baseline_add_shopping_cart_24"
android:tint="#ffffff"
/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
@ -7,20 +7,20 @@
android:layout_height="match_parent"
tools:context=".app.ui.product.ProductSearchActivity">
<com.google.android.material.appbar.AppBarLayout
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</com.google.android.material.appbar.AppBarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_product_search"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
@ -7,20 +7,20 @@
android:layout_height="match_parent"
tools:context=".app.ui.customer.ProfileActivity">
<com.google.android.material.appbar.AppBarLayout
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</com.google.android.material.appbar.AppBarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_profile"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
@ -10,4 +10,4 @@
<include layout="@layout/customer_shipping_address"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
@ -9,17 +9,17 @@
tools:context=".app.ui.product.ShopActivity"
tools:openDrawer="end">
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<com.google.android.material.appbar.AppBarLayout
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
@ -27,14 +27,14 @@
app:popupTheme="@style/AppTheme.PopupOverlay">
</androidx.appcompat.widget.Toolbar>
</android.support.v7.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_shop"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>
<include
layout="@layout/drawer_filter"
@ -44,4 +44,4 @@
/>
</androidx.drawerlayout.widget.DrawerLayout>
</android.support.v4.widget.DrawerLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
@ -8,4 +8,4 @@
<include layout="@layout/content_sign_in" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
@ -8,4 +8,4 @@
<include layout="@layout/content_sign_up" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
@ -7,23 +7,23 @@
android:layout_height="match_parent"
tools:context=".app.ui.onboarding.UserDetailsActivity">
<com.google.android.material.appbar.AppBarLayout
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</com.google.android.material.appbar.AppBarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_user_details"/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -31,4 +31,4 @@
android:layout_margin="@dimen/fab_margin"
app:srcCompat="@android:drawable/ic_dialog_email"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -11,7 +11,7 @@
app:layout_behavior="@string/appbar_scrolling_view_behavior"
>
<androidx.core.widget.NestedScrollView
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
@ -24,7 +24,7 @@
android:background="@drawable/rect_white"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatEditText
<android.support.v7.widget.AppCompatEditText
android:id="@+id/etCode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -39,7 +39,7 @@
/>
<androidx.appcompat.widget.AppCompatEditText
<android.support.v7.widget.AppCompatEditText
android:id="@+id/etDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -57,7 +57,7 @@
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</android.support.v4.widget.NestedScrollView>
<Button
android:id="@+id/bCreate"

Some files were not shown because too many files have changed in this diff Show More