From 9ca668625d7da8b00a3bc63b7942bd1edbeb0745 Mon Sep 17 00:00:00 2001 From: Naman Kumar Jha Date: Wed, 6 May 2020 08:48:36 +0530 Subject: [PATCH 01/17] Added Buttons and Completed Home Fragment 12.04.2020-01:27` --- app/build.gradle | 2 +- app/src/main/AndroidManifest.xml | 6 + .../java/com/example/codemail/BookList.java | 31 ++++ .../com/example/codemail/MainActivity.java | 2 +- .../example/codemail/sellbooks/PreviewAd.java | 156 ++++++++++++++++++ .../codemail/ui/home/HomeFragment.java | 20 +-- .../codemail/ui/myad/MyadFragment.java | 91 ++++++++++ .../PaymentmethodsFragment.java | 35 ---- .../PaymentmethodsViewModel.java | 19 --- app/src/main/res/layout/booklist_activity.xml | 39 +++++ ...t_paymentmethods.xml => fragment_myad.xml} | 12 +- .../main/res/menu/activity_main_drawer.xml | 6 +- .../main/res/navigation/mobile_navigation.xml | 6 +- 13 files changed, 344 insertions(+), 81 deletions(-) create mode 100644 app/src/main/java/com/example/codemail/BookList.java create mode 100644 app/src/main/java/com/example/codemail/sellbooks/PreviewAd.java create mode 100644 app/src/main/java/com/example/codemail/ui/myad/MyadFragment.java delete mode 100644 app/src/main/java/com/example/codemail/ui/paymentmethods/PaymentmethodsFragment.java delete mode 100644 app/src/main/java/com/example/codemail/ui/paymentmethods/PaymentmethodsViewModel.java create mode 100644 app/src/main/res/layout/booklist_activity.xml rename app/src/main/res/layout/{fragment_paymentmethods.xml => fragment_myad.xml} (64%) diff --git a/app/build.gradle b/app/build.gradle index 8ce2fe8..c056bdd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -28,7 +28,7 @@ dependencies { implementation 'androidx.navigation:navigation-fragment:2.0.0' implementation 'androidx.navigation:navigation-ui:2.0.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0' - implementation 'com.google.firebase:firebase-storage:16.0.4' + implementation 'com.google.firebase:firebase-storage:19.1.1' implementation 'com.firebaseui:firebase-ui-firestore:4.1.0' implementation 'com.firebaseui:firebase-ui-database:3.1.0' testImplementation 'junit:junit:4.12' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 432d9d8..df8d0cd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,12 @@ + + + diff --git a/app/src/main/java/com/example/codemail/BookList.java b/app/src/main/java/com/example/codemail/BookList.java new file mode 100644 index 0000000..daecd67 --- /dev/null +++ b/app/src/main/java/com/example/codemail/BookList.java @@ -0,0 +1,31 @@ +package com.example.codemail; + +import android.os.Bundle; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; + +import org.w3c.dom.Text; + +public class BookList extends AppCompatActivity { + TextView brd,scl,cls; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.booklist_activity); + + brd = (TextView)findViewById(R.id.brd); + scl = (TextView)findViewById(R.id.scl); + cls = (TextView)findViewById(R.id.cls); + + String a = getIntent().getStringExtra("BOARD"); + String b = getIntent().getStringExtra("SCHOOL"); + String c = getIntent().getStringExtra("CLASS"); + + brd.setText(a); + scl.setText(b); + cls.setText(c); + + } +} diff --git a/app/src/main/java/com/example/codemail/MainActivity.java b/app/src/main/java/com/example/codemail/MainActivity.java index ecb7e37..ecc3995 100644 --- a/app/src/main/java/com/example/codemail/MainActivity.java +++ b/app/src/main/java/com/example/codemail/MainActivity.java @@ -105,7 +105,7 @@ public void onCancelled(@NonNull DatabaseError databaseError) { // menu should be considered as top level destinations. mAppBarConfiguration = new AppBarConfiguration.Builder( R.id.nav_home, R.id.nav_buy, R.id.nav_sell, - R.id.nav_help, R.id.nav_contact, R.id.nav_more, R.id.nav_yourorders, R.id.nav_payment, R.id.nav_mywishlist) + R.id.nav_help, R.id.nav_contact, R.id.nav_more, R.id.nav_yourorders, R.id.nav_myad, R.id.nav_mywishlist) .setDrawerLayout(drawer) .build(); NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); diff --git a/app/src/main/java/com/example/codemail/sellbooks/PreviewAd.java b/app/src/main/java/com/example/codemail/sellbooks/PreviewAd.java new file mode 100644 index 0000000..a3bcc29 --- /dev/null +++ b/app/src/main/java/com/example/codemail/sellbooks/PreviewAd.java @@ -0,0 +1,156 @@ +package com.example.codemail.sellbooks; + +import android.app.ProgressDialog; +import android.content.Intent; +import android.graphics.drawable.ColorDrawable; +import android.os.Bundle; +import android.os.PersistableBundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.widget.Button; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.example.codemail.MainActivity; +import com.example.codemail.R; +import com.example.codemail.ui.home.CategoryViewHolder; +import com.example.codemail.ui.home.CategoryViewHolder1; +import com.example.codemail.ui.home.LiveBooks; +import com.example.codemail.ui.home.LiveBooks1; +import com.firebase.ui.database.FirebaseRecyclerAdapter; +import com.firebase.ui.database.FirebaseRecyclerOptions; +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.auth.FirebaseUser; +import com.google.firebase.database.DataSnapshot; +import com.google.firebase.database.DatabaseError; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.ValueEventListener; +import com.squareup.picasso.Callback; +import com.squareup.picasso.Picasso; + +public class PreviewAd extends AppCompatActivity { + + DatabaseReference databaseReference, databaseReference1; + TextView nameText,yearText,subjectText,classText,priceText; + RecyclerView recyclerView; + ProgressDialog progressDialog; + Button buut1, buut2; + FirebaseRecyclerOptions options; + FirebaseRecyclerAdapter adapter; + + @Override + public void onCreate( Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_ACTION_BAR); + setContentView(R.layout.activity_previewad); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setTitle("Sell Books"); + getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.gradStop))); + + progressDialog = new ProgressDialog(this); + progressDialog.setMessage("Uploading .........."); + progressDialog.show(); + + FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); + final String User = user.getUid(); + + String c = getIntent().getStringExtra("db"); + + databaseReference = FirebaseDatabase.getInstance().getReference().child("User").child(User).child("SellBooks").child(c); + + buut1 = findViewById(R.id.butuon); + buut2 = findViewById(R.id.butuon1); + recyclerView = findViewById(R.id.imagePreview); + nameText = findViewById(R.id.bookTitle); + yearText = findViewById(R.id.year); + subjectText = findViewById(R.id.subject); + classText = findViewById(R.id.clas); + priceText = findViewById(R.id.price); + + buut1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + databaseReference.removeValue(); + Intent inty = new Intent(PreviewAd.this, SellActivity.class); + startActivity(inty); + } + }); + + buut2.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent inty1 = new Intent(PreviewAd.this, MainActivity.class); + startActivity(inty1); + } + }); + + databaseReference.addValueEventListener(new ValueEventListener() { + @Override + public void onDataChange(@NonNull DataSnapshot dataSnapshot) { + String name = dataSnapshot.child("bookname").getValue().toString(); + nameText.setText(name); + String year = dataSnapshot.child("year").getValue().toString(); + yearText.setText(year); + String subject = dataSnapshot.child("subject").getValue().toString(); + subjectText.setText(subject); + String clas = dataSnapshot.child("class").getValue().toString(); + classText.setText(clas); + String price = dataSnapshot.child("price").getValue().toString(); + priceText.setText(price); + + } + + @Override + public void onCancelled(@NonNull DatabaseError databaseError) { + + } + }); + + databaseReference1 = databaseReference.child("Images"); + options = new FirebaseRecyclerOptions.Builder().setQuery(databaseReference1,AdImages.class).build(); + adapter = new FirebaseRecyclerAdapter(options) { + @Override + protected void onBindViewHolder(AdImageAdapter adImageAdapter, int i,AdImages adImages) { + + Picasso.get().load(adImages.getLink()).into(adImageAdapter.i1, new Callback() { + @Override + public void onSuccess() { + progressDialog.dismiss(); + } + + @Override + public void onError(Exception e) { + Toast.makeText(PreviewAd.this,"Image Load Failed",Toast.LENGTH_LONG).show(); + } + }); + + } + + @NonNull + @Override + public AdImageAdapter onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.ad_image,parent,false); + + return new AdImageAdapter(view); + } + }; + + LinearLayoutManager layoutManager = new LinearLayoutManager( + PreviewAd.this, LinearLayoutManager.HORIZONTAL,false + ); + recyclerView.setLayoutManager(layoutManager); + adapter.startListening(); + recyclerView.setAdapter(adapter); + + } +} diff --git a/app/src/main/java/com/example/codemail/ui/home/HomeFragment.java b/app/src/main/java/com/example/codemail/ui/home/HomeFragment.java index 362a893..ade2063 100644 --- a/app/src/main/java/com/example/codemail/ui/home/HomeFragment.java +++ b/app/src/main/java/com/example/codemail/ui/home/HomeFragment.java @@ -7,32 +7,24 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; -import android.widget.TextView; import android.widget.Toast; import android.widget.ViewFlipper; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; -import androidx.recyclerview.widget.DefaultItemAnimator; -import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.example.codemail.BuyActivity; import com.example.codemail.R; +import com.example.codemail.sellbooks.SellActivity; import com.firebase.ui.database.FirebaseRecyclerAdapter; import com.firebase.ui.database.FirebaseRecyclerOptions; -import com.google.firebase.database.DataSnapshot; -import com.google.firebase.database.DatabaseError; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; -import com.google.firebase.database.ValueEventListener; import com.squareup.picasso.Callback; import com.squareup.picasso.Picasso; -import java.util.ArrayList; -import java.util.Locale; - public class HomeFragment extends Fragment { @@ -52,6 +44,14 @@ public View onCreateView(@NonNull LayoutInflater inflater, buut1 = (Button)root.findViewById(R.id.buut1); buut2 = (Button)root.findViewById(R.id.buut2); + buut2.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent int2 = new Intent(getContext(), SellActivity.class); + startActivity(int2); + } + }); + buut1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -79,7 +79,7 @@ public void onClick(View v) { @Override protected void onBindViewHolder(CategoryViewHolder categoryViewHolder, int i, LiveBooks liveBooks) { - Picasso.get().load(liveBooks.geturl()).into(categoryViewHolder.i1, new Callback() { + Picasso.get().load(liveBooks.geturl()).fit().centerCrop().into(categoryViewHolder.i1, new Callback() { @Override public void onSuccess() { diff --git a/app/src/main/java/com/example/codemail/ui/myad/MyadFragment.java b/app/src/main/java/com/example/codemail/ui/myad/MyadFragment.java new file mode 100644 index 0000000..41c2cb2 --- /dev/null +++ b/app/src/main/java/com/example/codemail/ui/myad/MyadFragment.java @@ -0,0 +1,91 @@ +package com.example.codemail.ui.myad; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProviders; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.example.codemail.R; +import com.example.codemail.ui.home.CategoryViewHolder; +import com.example.codemail.ui.home.CategoryViewHolder1; +import com.example.codemail.ui.home.LiveBooks; +import com.example.codemail.ui.home.LiveBooks1; +import com.firebase.ui.database.FirebaseRecyclerAdapter; +import com.firebase.ui.database.FirebaseRecyclerOptions; +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.auth.FirebaseUser; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; +import com.squareup.picasso.Callback; +import com.squareup.picasso.Picasso; + +public class MyadFragment extends Fragment { + + RecyclerView recyclerView3; + DatabaseReference databaseReference; + FirebaseRecyclerOptions options; + FirebaseRecyclerAdapter adapter; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + View root = inflater.inflate(R.layout.fragment_myad, container, false); + + FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); + final String User = user.getUid(); + + recyclerView3 = (RecyclerView)root.findViewById(R.id.recycler_view3); + databaseReference = FirebaseDatabase.getInstance().getReference().child("User").child(User).child("SellBooks"); + options = new FirebaseRecyclerOptions.Builder() + .setQuery(databaseReference,AdImage.class).build(); + adapter = new FirebaseRecyclerAdapter(options) { + @Override + protected void onBindViewHolder(AdAdapter adAdapter, int i, AdImage adImage) { + + Picasso.get().load(adImage.getimagelink()).fit().centerCrop().into(adAdapter.i1, new Callback() { + @Override + public void onSuccess() { + + } + + @Override + public void onError(Exception e) { + Toast.makeText(getContext(),"Image Load Failed",Toast.LENGTH_LONG).show(); + } + }); + adAdapter.t2.setText(adImage.getbookname()); + adAdapter.t3.setText(adImage.getprice()); + + } + + @NonNull + @Override + public AdAdapter onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.myad_item,parent,false); + + return new AdAdapter(view); + } + }; + + LinearLayoutManager layoutManager = new LinearLayoutManager( + getContext(), LinearLayoutManager.VERTICAL,false + ); + recyclerView3.setLayoutManager(layoutManager); + adapter.startListening(); + recyclerView3.setAdapter(adapter); + + + return root; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/codemail/ui/paymentmethods/PaymentmethodsFragment.java b/app/src/main/java/com/example/codemail/ui/paymentmethods/PaymentmethodsFragment.java deleted file mode 100644 index 70325d5..0000000 --- a/app/src/main/java/com/example/codemail/ui/paymentmethods/PaymentmethodsFragment.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.example.codemail.ui.paymentmethods; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.annotation.NonNull; -import androidx.fragment.app.Fragment; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProviders; - -import com.example.codemail.R; - -public class PaymentmethodsFragment extends Fragment { - - private PaymentmethodsViewModel paymentmethodsViewModel; - - public View onCreateView(@NonNull LayoutInflater inflater, - ViewGroup container, Bundle savedInstanceState) { - paymentmethodsViewModel = - ViewModelProviders.of(this).get(PaymentmethodsViewModel.class); - View root = inflater.inflate(R.layout.fragment_paymentmethods, container, false); - final TextView textView = root.findViewById(R.id.text_paymentmethods); - paymentmethodsViewModel.getText().observe(this, new Observer() { - @Override - public void onChanged(@Nullable String s) { - textView.setText(s); - } - }); - return root; - } -} \ No newline at end of file diff --git a/app/src/main/java/com/example/codemail/ui/paymentmethods/PaymentmethodsViewModel.java b/app/src/main/java/com/example/codemail/ui/paymentmethods/PaymentmethodsViewModel.java deleted file mode 100644 index df18f40..0000000 --- a/app/src/main/java/com/example/codemail/ui/paymentmethods/PaymentmethodsViewModel.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.example.codemail.ui.paymentmethods; - -import androidx.lifecycle.LiveData; -import androidx.lifecycle.MutableLiveData; -import androidx.lifecycle.ViewModel; - -public class PaymentmethodsViewModel extends ViewModel { - - private MutableLiveData mText; - - public PaymentmethodsViewModel() { - mText = new MutableLiveData<>(); - mText.setValue("This is payment methods fragment"); - } - - public LiveData getText() { - return mText; - } -} \ No newline at end of file diff --git a/app/src/main/res/layout/booklist_activity.xml b/app/src/main/res/layout/booklist_activity.xml new file mode 100644 index 0000000..097fdc8 --- /dev/null +++ b/app/src/main/res/layout/booklist_activity.xml @@ -0,0 +1,39 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_paymentmethods.xml b/app/src/main/res/layout/fragment_myad.xml similarity index 64% rename from app/src/main/res/layout/fragment_paymentmethods.xml rename to app/src/main/res/layout/fragment_myad.xml index 29820e5..43319f5 100644 --- a/app/src/main/res/layout/fragment_paymentmethods.xml +++ b/app/src/main/res/layout/fragment_myad.xml @@ -4,18 +4,12 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - \ No newline at end of file diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml index 948efc4..ef174b8 100644 --- a/app/src/main/res/menu/activity_main_drawer.xml +++ b/app/src/main/res/menu/activity_main_drawer.xml @@ -37,9 +37,9 @@ android:icon="@drawable/yourorder" android:title= "@string/menu_YourOrders" /> + android:id="@+id/nav_myad" + android:icon="@drawable/myad" + android:title="My Ad"/> + tools:layout="@layout/fragment_myad" /> Date: Sun, 31 May 2020 20:13:33 +0530 Subject: [PATCH 02/17] Added Buttons and Completed Home Fragment 21.05.2020 20:1 --- app/src/main/res/layout/activity_main.xml | 2 +- app/src/main/res/layout/app_bar_main.xml | 5 +---- app/src/main/res/layout/fragment_myad.xml | 4 +++- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index f571d62..5eb7160 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -12,7 +12,7 @@ + android:layout_height="match_parent"/> + app:popupTheme="@style/AppTheme.PopupOverlay"/> - - + app:layout_constraintTop_toTopOf="parent" + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp"/> \ No newline at end of file From ee6433989d1ef53cc6b3eaefcd3e1e091748a01b Mon Sep 17 00:00:00 2001 From: Naman Kumar Jha Date: Sun, 31 May 2020 20:43:57 +0530 Subject: [PATCH 03/17] Added Buttons and Completed Home Fragment 21.05.2020 20:43 --- .../codemail/sellbooks/AdImageAdapter.java | 21 ++ .../example/codemail/sellbooks/AdImages.java | 26 +++ .../codemail/sellbooks/SellActivity.java | 155 +++++++++++++ .../sellbooks/UploadimageActivity.java | 185 +++++++++++++++ .../example/codemail/ui/myad/AdAdapter.java | 26 +++ .../com/example/codemail/ui/myad/AdImage.java | 36 +++ app/src/main/res/drawable/btn_bg3.xml | 15 ++ app/src/main/res/drawable/delete.png | Bin 0 -> 6169 bytes app/src/main/res/drawable/myad.png | Bin 0 -> 6170 bytes app/src/main/res/drawable/rupee.png | Bin 0 -> 5165 bytes app/src/main/res/drawable/shape1.xml | 20 ++ app/src/main/res/drawable/shape2.xml | 18 ++ .../main/res/layout/activity_previewad.xml | 178 ++++++++++++++ .../main/res/layout/activity_sellbooks.xml | 217 ++++++++++++++++++ .../main/res/layout/activity_uploadimage.xml | 59 +++++ app/src/main/res/layout/ad_image.xml | 22 ++ app/src/main/res/layout/myad_item.xml | 106 +++++++++ 17 files changed, 1084 insertions(+) create mode 100644 app/src/main/java/com/example/codemail/sellbooks/AdImageAdapter.java create mode 100644 app/src/main/java/com/example/codemail/sellbooks/AdImages.java create mode 100644 app/src/main/java/com/example/codemail/sellbooks/SellActivity.java create mode 100644 app/src/main/java/com/example/codemail/sellbooks/UploadimageActivity.java create mode 100644 app/src/main/java/com/example/codemail/ui/myad/AdAdapter.java create mode 100644 app/src/main/java/com/example/codemail/ui/myad/AdImage.java create mode 100644 app/src/main/res/drawable/btn_bg3.xml create mode 100644 app/src/main/res/drawable/delete.png create mode 100644 app/src/main/res/drawable/myad.png create mode 100644 app/src/main/res/drawable/rupee.png create mode 100644 app/src/main/res/drawable/shape1.xml create mode 100644 app/src/main/res/drawable/shape2.xml create mode 100644 app/src/main/res/layout/activity_previewad.xml create mode 100644 app/src/main/res/layout/activity_sellbooks.xml create mode 100644 app/src/main/res/layout/activity_uploadimage.xml create mode 100644 app/src/main/res/layout/ad_image.xml create mode 100644 app/src/main/res/layout/myad_item.xml diff --git a/app/src/main/java/com/example/codemail/sellbooks/AdImageAdapter.java b/app/src/main/java/com/example/codemail/sellbooks/AdImageAdapter.java new file mode 100644 index 0000000..72b5fb3 --- /dev/null +++ b/app/src/main/java/com/example/codemail/sellbooks/AdImageAdapter.java @@ -0,0 +1,21 @@ +package com.example.codemail.sellbooks; + +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.example.codemail.R; + +public class AdImageAdapter extends RecyclerView.ViewHolder { + + public ImageView i1; + + public AdImageAdapter(@NonNull View itemView) { + super(itemView); + + i1 = (ImageView)itemView.findViewById(R.id.adimage); + } +} diff --git a/app/src/main/java/com/example/codemail/sellbooks/AdImages.java b/app/src/main/java/com/example/codemail/sellbooks/AdImages.java new file mode 100644 index 0000000..03817c9 --- /dev/null +++ b/app/src/main/java/com/example/codemail/sellbooks/AdImages.java @@ -0,0 +1,26 @@ +package com.example.codemail.sellbooks; + +public class AdImages { + public String link; + + public AdImages(String link) + { + this.link = link; + } + + public AdImages() + { + + } + + public String getLink() + { + return link; + } + + public void setLink(String link) + { + this.link = link; + } + +} diff --git a/app/src/main/java/com/example/codemail/sellbooks/SellActivity.java b/app/src/main/java/com/example/codemail/sellbooks/SellActivity.java new file mode 100644 index 0000000..670945d --- /dev/null +++ b/app/src/main/java/com/example/codemail/sellbooks/SellActivity.java @@ -0,0 +1,155 @@ +package com.example.codemail.sellbooks; + +import android.content.Intent; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.os.Bundle; +import android.view.MenuItem; +import android.view.View; +import android.view.Window; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +import com.example.codemail.R; + +import java.util.ArrayList; + +public class SellActivity extends AppCompatActivity { + Spinner Yearspinner, Classspinner, Subjectspinner; + EditText bookname, price; + Button butuon; + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_ACTION_BAR); + setContentView(R.layout.activity_sellbooks); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setTitle("Sell Books"); + getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.gradStop))); + + Yearspinner = findViewById(R.id.Yearspinner); + Classspinner = findViewById(R.id.Classspinner); + Subjectspinner = findViewById(R.id.Subjectspinner); + price = findViewById(R.id.price); + bookname = findViewById(R.id.bookname); + butuon = findViewById(R.id.butuon); + price = findViewById(R.id.price); + + ArrayList yearList = new ArrayList<>(); + + for(int i=1900;i<=2100;i++) + { + yearList.add(i); + } + + ArrayAdapter arrayAdapter1 = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_spinner_item, yearList); + arrayAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + Yearspinner.setAdapter(arrayAdapter1); + int position1 = arrayAdapter1.getPosition(2000); + Yearspinner.setSelection(position1); + + ArrayList classlist = new ArrayList<>(); + for(int j=1;j<=12;j++) + { + classlist.add("Class "+j); + } + + ArrayAdapter arrayAdapter2 = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_spinner_item,classlist); + arrayAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + Classspinner.setAdapter(arrayAdapter2); + + ArrayList subjectlist = new ArrayList<>(); + subjectlist.add("Accountancy"); + subjectlist.add("Biology"); + subjectlist.add("Business"); + subjectlist.add("Chemistry"); + subjectlist.add("Civics"); + subjectlist.add("Commerce"); + subjectlist.add("Economics"); + subjectlist.add("English"); + subjectlist.add("English Language"); + subjectlist.add("English Literature"); + subjectlist.add("Geography"); + subjectlist.add("Hindi"); + subjectlist.add("Hindi Language"); + subjectlist.add("Hindi Literature"); + subjectlist.add("History"); + subjectlist.add("Mathematics"); + subjectlist.add("Physics"); + subjectlist.add("Science"); + subjectlist.add("Statistics"); + + ArrayAdapter arrayAdapter3 = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_spinner_item, subjectlist); + arrayAdapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + Subjectspinner.setAdapter(arrayAdapter3); + + butuon.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String name = bookname.getText().toString(); + String year = Yearspinner.getSelectedItem().toString(); + String clas = Classspinner.getSelectedItem().toString(); + String subject = Subjectspinner.getSelectedItem().toString(); + String pric = price.getText().toString(); + if((name.isEmpty())&&(pric.isEmpty())) + { + Toast.makeText(getApplicationContext(),"Fiels are Empty",Toast.LENGTH_LONG).show(); + return; + } + else if(name.isEmpty()) + { + bookname.setError("Enter Book's Name"); + bookname.requestFocus(); + return; + } + else if(pric.isEmpty()) + { + price.setError("Enter Book's Price"); + price.requestFocus(); + return; + } + else{ + Intent intent = new Intent(SellActivity.this, UploadimageActivity.class); + intent.putExtra("name", name); + intent.putExtra("year", year); + intent.putExtra("clas", clas); + intent.putExtra("subject", subject); + intent.putExtra("price", pric); + startActivity(intent); + } + } + }); + + } + + + private AdapterView.OnItemSelectedListener Subject = new AdapterView.OnItemSelectedListener() { + public void onItemSelected(AdapterView parent, View view, int pos, long id) { + ((TextView) parent.getChildAt(0)).setTextColor(Color.BLUE); + ((TextView) parent.getChildAt(0)).setTextSize(5); + } + + public void onNothingSelected(AdapterView parent) { + + } + }; + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + finish(); + return true; + } + return super.onOptionsItemSelected(item); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/codemail/sellbooks/UploadimageActivity.java b/app/src/main/java/com/example/codemail/sellbooks/UploadimageActivity.java new file mode 100644 index 0000000..e2cf4e9 --- /dev/null +++ b/app/src/main/java/com/example/codemail/sellbooks/UploadimageActivity.java @@ -0,0 +1,185 @@ +package com.example.codemail.sellbooks; + +import android.annotation.SuppressLint; +import android.app.ProgressDialog; +import android.content.Intent; +import android.graphics.drawable.ColorDrawable; +import android.net.Uri; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.view.Window; +import android.widget.Button; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +import com.example.codemail.R; +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.OnSuccessListener; +import com.google.android.gms.tasks.Task; +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.auth.FirebaseUser; +import com.google.firebase.database.DataSnapshot; +import com.google.firebase.database.DatabaseError; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.ValueEventListener; +import com.google.firebase.storage.FirebaseStorage; +import com.google.firebase.storage.StorageReference; +import com.google.firebase.storage.UploadTask; + +import java.util.ArrayList; +import java.util.HashMap; + +public class UploadimageActivity extends AppCompatActivity { + + private static final int PICK_IMG = 1; + private ArrayList ImageList = new ArrayList(); + private int uploads = 0; + private DatabaseReference databaseReference, databaseReference1; + private ProgressDialog progressDialog; + int index = 0; + TextView textView; + Button choose,send; + public int i=0,zz=0; + String User,linky; + public HashMap hashMap = new HashMap<>(); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_ACTION_BAR); + setContentView(R.layout.activity_uploadimage); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setTitle("Sell Books"); + getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.gradStop))); + + FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); + User = user.getUid(); + + progressDialog = new ProgressDialog(this); + progressDialog.setMessage("Uploading .........."); + textView = findViewById(R.id.text); + choose = findViewById(R.id.choose); + send = findViewById(R.id.upload); + } + + public void choose(View view) { + //we will pick images + Intent intent = new Intent(Intent.ACTION_GET_CONTENT); + intent.setType("image/*"); + intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); + startActivityForResult(intent, PICK_IMG); + } + + @SuppressLint("SetTextI18n") + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + + if (requestCode == PICK_IMG) { + if (resultCode == RESULT_OK) { + if (data.getClipData() != null) { + int count = data.getClipData().getItemCount(); + + int CurrentImageSelect = 0; + + while (CurrentImageSelect < count) { + Uri imageuri = data.getClipData().getItemAt(CurrentImageSelect).getUri(); + ImageList.add(imageuri); + CurrentImageSelect = CurrentImageSelect + 1; + } + textView.setVisibility(View.VISIBLE); + textView.setText("You Have Selected "+ ImageList.size() +" Pictures" ); + send.setVisibility(View.VISIBLE); + choose.setVisibility(View.GONE); + } + + } + + } + + } + + @SuppressLint("SetTextI18n") + public void upload(View view) { + + databaseReference = FirebaseDatabase.getInstance().getReference().child("User").child(User).child("SellBooks").push(); + String c = databaseReference.getKey(); + + SendLink2(); + + textView.setText("Please Wait ... If Uploading takes Too much time please the button again "); + progressDialog.show(); + final StorageReference ImageFolder = FirebaseStorage.getInstance().getReference().child("ImageFolder"); + for (uploads=0; uploads < ImageList.size(); uploads++) { + Uri Image = ImageList.get(uploads); + final String x = "Image "+uploads; + final StorageReference imagename = ImageFolder.child("image/"+Image.getLastPathSegment()); + + imagename.putFile(ImageList.get(uploads)).addOnSuccessListener(new OnSuccessListener() { + @Override + public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { + imagename.getDownloadUrl().addOnSuccessListener(new OnSuccessListener() { + @Override + public void onSuccess(Uri uri) { + + String url = String.valueOf(uri); + + if(zz ==0) + { + databaseReference.child("imagelink").setValue(url); + } + + SendLink(url,x); + } + }); + + } + }); + + + } + Intent intent = new Intent(UploadimageActivity.this, PreviewAd.class); + intent.putExtra("db",c); + startActivity(intent); + + + } + + private void SendLink(String url, String c) { + HashMap hashMap1 = new HashMap<>(); + hashMap1.put("link",url); + databaseReference.child("Images").push().setValue(hashMap1).addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + progressDialog.dismiss(); + textView.setText("Image Uploaded Successfully"); + send.setVisibility(View.GONE); + ImageList.clear(); + } + }); + } + + private void SendLink2() { + String name = getIntent().getStringExtra("name"); + String clas = getIntent().getStringExtra("clas"); + String year = getIntent().getStringExtra("year"); + String subject = getIntent().getStringExtra("subject"); + String price = getIntent().getStringExtra("price"); + hashMap.put("bookname", name); + hashMap.put("class", clas); + hashMap.put("year", year); + hashMap.put("subject", subject); + hashMap.put("price",price); + databaseReference.setValue(hashMap).addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/codemail/ui/myad/AdAdapter.java b/app/src/main/java/com/example/codemail/ui/myad/AdAdapter.java new file mode 100644 index 0000000..1dcc312 --- /dev/null +++ b/app/src/main/java/com/example/codemail/ui/myad/AdAdapter.java @@ -0,0 +1,26 @@ +package com.example.codemail.ui.myad; + +import android.media.Image; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.example.codemail.R; + +public class AdAdapter extends RecyclerView.ViewHolder { + + public TextView t1,t2,t3; + public ImageView i1; + + public AdAdapter(@NonNull View itemView) { + super(itemView); + + t1 = (TextView)itemView.findViewById(R.id.period); + t2 = (TextView) itemView.findViewById(R.id.adbookname); + t3 = (TextView) itemView.findViewById(R.id.price); + i1 = (ImageView) itemView.findViewById(R.id.myad); + } +} diff --git a/app/src/main/java/com/example/codemail/ui/myad/AdImage.java b/app/src/main/java/com/example/codemail/ui/myad/AdImage.java new file mode 100644 index 0000000..1f9aa8f --- /dev/null +++ b/app/src/main/java/com/example/codemail/ui/myad/AdImage.java @@ -0,0 +1,36 @@ +package com.example.codemail.ui.myad; + +public class AdImage { + + public String price; + + public String getimagelink() { + return imagelink; + } + + public void setimagelink(String imagelink) { + this.imagelink = imagelink; + } + + public String imagelink; + public String bookname; + + public String getbookname() { + return bookname; + } + + public void setbookname(String bookname) { + this.bookname = bookname; + } + + public String getprice() { + return price; + } + + public void setprice(String price) { + this.price = price; + } + + public AdImage() { + } +} diff --git a/app/src/main/res/drawable/btn_bg3.xml b/app/src/main/res/drawable/btn_bg3.xml new file mode 100644 index 0000000..e287e28 --- /dev/null +++ b/app/src/main/res/drawable/btn_bg3.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/delete.png b/app/src/main/res/drawable/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..c0dae0c6daaebbe72ba2f8dc66f764bc1a89015a GIT binary patch literal 6169 zcmeHL^;Z;3|6P`l76cTKSVAcYX^;|8S(*iQWr?Lz>5`?Ck`h-yqy&+r7f?#NOVXu; zrKOhchW+xq?_cqK&olFxxpVKCGiTQWTgZE05o8AH3$Fzyj}tU9`M!+Y;OAHRU0&;wx+QL%^O5>nDK zvU2i|6cm+|RUWH8dHU?RI#@$fOIt@*Pak4nXat45Fov6$nwcXktgLNp?d%;KonE@Q zy19FJdHeYKz4k{21O^3%ym=cM79J7#E-E@U?tT0R)W^i6PsyKCQq$5izGP;7&Hk2y z&dtj&C@d<*l$4fz|5091SylbBrnauWp|PpCrM11Iv#Y!3S8recz~Int?C{9w*!Z7` zN!--T?A-jq-^HcnmDRQNjm@p?o!!0tgTtfalhd>Fi_0rGJZA?0U?>BtJvQ{4+{`$) zW?X8BlsP6*ZFXY#Mxqu*S4Q_eD^XPrqy|@cMT9m7Am5q3eGV_+T~74K=MMk%G=@Wn z8>6NHccQ1Qrc@Op>tN<3aUf?@2dQ+wx_aZeTXFl(=|JCB-y?~-!F^=o_IZ%9u8+O_ zObP`__J^Mw-}aIdUrwJp_NNHJ21WvEeVuzgUg#?>0O@wy4|)->(PC0`jgwhW6SF^K z&4G~Lajac)iZ9jK?*esRWD8e6Z{%&8;nMDGTsc$fJ;5)V&&IhUkU_XYk6Q*wDXx}P*Zlpt%-^-0)n$Ia4(jq7H1Z<<{L0iPMcRxRI@=8@c?q5R4PWdkol>LzMh}~< zHs0VDr!HJV>8&YYtzP)iPy1#Xwsl=e>XKvj!tB2NqH#Q!^`@jA#Klup9>}(>Qw=r340G{qg!z)Q|7(l zdPU|?(_dm)E4BZqIgO1$ln5s?AcU3e>TVJCk2VSM$H@$BEc{wL6qlxyp%miEbnZ?jdHJDqh|3lKXzR zbfMHp)6`W_$=4$mpi`2u-1gjX)>Kc&>qy_+t-N$#NNZ+F!{G>9`}zmMhtnt3H@ZH3 zZbU&@;oDI}Yq{DIqdk@D&RHa3e42K zHEq5{XnNNB?Np;IM!x^{yb&7u{$sSpd)htdRe4&Ens9%)B4cnL1gJj<8B|E)o)^Zt zg;w9HM+L8C_O!BJZA2v-`(AzEomyxc*jmY~&tRLfM*hH^cD(|T%1q212~opPZ|aIY zWC+~1+|syZ_Bn@j04~EyoedYRirR$fl>op!PTs%uv(56<(^k?ULu(WSm8U&rip5gUHQhL-Seb5lj09#romn@=wP zxaOzp-fSyH&+;auX7Ca^cS1Cm40z4O&J@lbq9*#|;~KpYdVaUc1}sEQ7j2cvwneaO zBN?=8)?!IZIZGtHG?OJR)*&r{0F%EIy%Y=8zXF3bN7b;4xR9H{amDHL&XFCR2*{!M z`ST7(NsqIx8Uxiht92vA@)H`-EuD9?(TeVZbEONkm6BE-J2==>_$f>(VO1C|8d09$QRtd(5nJ)OtFajv4h?qQX49wL;+?*EpLxE zfHVi3yucJI`tpV|FFOYlKeR-@_@ksDi(mb+UdGxT?Y*LMq&Zsa|mj@ ztZwWMi|JR30Q^y+*Y%CO@VO62|27H7Du?)`+lSCK<0w0mUG)2SI97T*PphU>EiW=} z#qVDjl4t3)oaojBNQtkZO1hNM78hV_Zu^5h_tXakgak&dtjsPBW7b#i;#W8G7VKAz zErB@lZpSK$P359RwZ8j!eIuEVAIhir6|-I?d=yaN2_zHd<+eBG_a?C1GhpUc%3ZuI z?(xy2y=$LZUp%tC7t02v|CsP@+p)fQb><>tfmmpQbqh4HzytU7pLbTrsb~#wHRZ!b ziT`+2;s#gi(K8K z`kP!~2Dw0=r$@miGBVQC{N@uRkBg)1MD+r-{M*}eDpI?wD8v-3I57{0@oS8u40r9f zFr7&q^$N1oWVd0d>-)rOD^(L4Mg8%joIO14PeAUA9_6Ap$E$vdHJQWunr0d?TPpa% z?2BMhgT*@-K}EfByT&GAITz+yb>jG)Y#~nl0>0IHnf&#Qf#i{<3M^7|NV*f#mMAAV zOV#JOt#U|HyREctdV&53c}AFC{zmI^1?`uA3f%IjO{=pPim3eXCar?n_dLKziR&l0 z@!bA_eFc4}vogS*M4|a+$%n88LySB z^sY%^8eDn}%;=l-iGG+npBG}ckZt*iV*3ZMB%MJm@^2$UO#wy)o0Shp+;l=Fv|;1^ z!g3=Tv-!2PkWm@cE70rxH4W`@x@In-k7K5=m$R6!N&Z>8lNxb1!=U)FAM5uk<%x*c z=;!)Dqe_}oXzXg$x=>{tEgCXu|M-3-8BsdjTuRoGhBXGZX2w|z33OdgveFFIS#u;Q zLxd<{TGq9z&7FLAH0m(0RE~OxGbc%zSxB7xq0=KcM)I+%6GJg{?M0D+BMX`e#XSEBaNNsKt6D-r>HibW{|5Bm`Tw^A z&BQ=z20@WBXd%1_Qdy}%6$YkJ1(=XBgACJOVGL`6&>qf7c2o(!o?VOGbb>k+P^a=B zbpM#3Hsk$K7NVC-prh!Z4zBBjjg?kR!qHr3Ng^b4*9ik|<8LcuI$*Fimo?f|P=Vcg z7qm9HML9sii>mR}cgTuegGN78xq5aiV~pTyeq9w1Fc z$B!+jZu3B!3%3YW9{ezMiX6y^29jG;0}A-wesXTW`4^yD?5jrn(RC)FP~qc%8%Z#<79<`zwap4i)u%G)pu{m zKm!E4$@*_}o@eV9+l4?X#O#ly!|>yK5oUrbc&59)#lenF{-3?+K))UXNL2n)J2e2u zR(Waqa;3DePV}h*yL+qr(XDbNWO!%CsUz2&!*TcY&xdj)v(+(;@NV#Bct!iia*pr9 zXMvCKMM;JfoVF|^n8=F5%3m;{3DIKSFfyE95mb<|?)k zc)b4I&;dt@z}URE!_oNt4s*k0OLxJ9Y7l=x%`;B`n?VR+bY4XwcQ&mKYNYZ@BV5C@ zyeyIOnuZTmEXxLC(54^dB8x*&Jcq?o_A#&Z;eBMSw4G!H_M&GmAHK#~sRjf*3zK;9 z()i0DG(nJ^#NkoYxxbGFyR*(A&ci24DgNHJGmDV)%jE4b1OAc~3t$vNyY=yR%kV~% zp^OFp3fQ{~Cv()fcOC(HfU3`)u(=xS`&4&`x|uBb+#Is*03k&G#&}dOpSWqWkU19) z-al?iFmv6RUFg-83{Jd*X2(C-Ltt0lJubRh?X``Qd66_G7O_D{en|5ygLS*tyCcA= zqNECly-7kj8GCjBj#Y*omDzQdGJI3KYDe7l#am{U2yd0`P73m=`Cc&y#v#3A2TF_5 z3R5hOKdi@}+?*&-e1;W8itFcXpsDh(_`M<-=F@N~{iU_Eu%*k|oL;c!5i& zE%O1+;ZQylIl;mOsd-hwpoO1tv%uwef@@5BZx$Y@KE{T`64QehG;N$C?xBz?8z-La z&h0h3Z^&~W<%P%T5Pae{F7Dk2$L1O$naCDo{L6W2v zm7p{rIfIfxXlQcmY2H-Ld-uniSM{o<=Euxgb!zXu)(+qL);gm$-aI@~YG|X&G5Lc?Cr!W#o008>(vRH#IbGX=&@|>gnG$Ff=kYF*UnmZeeM4 z7iE3#zRd&Mhj#W3j!uu9U0mJVJv_aAQJ$oMgA|^I2 z{$;`+iAl+?{!B?td!3$spV>R6;7v%bO&Iw8a*1S0{yfOU~iKBsA8=ziJX%ooZ zXm{H9Wvl;Xrv9_7{!`!PKWXQ@RQ37W9_A{lqyvC(-Sd@ z0MQN_x5@R5;Gmtn`<6|_vs5U~5_H*vSJapwxFeu(3bWV(lqiv*U_p=U_>};3a(O2mliZaT##dUhm-qn$VgX0(=H>te{zS%3v$@+8l&913C?Od;3kP zi7)~bM|WbGDyZvMJ~W)cSB+fc@Tv{O)|_$G<5pY`vtx)L3QLy$I)#t;+?)d8n8%JVLf%C`HIRi!-G4w zPU4Dhcrbciyzk@OTE89?cM^O;*5aIx5AcPKCl{a^* z`&>RsKR_j~5nbLh)jS=|3EIfOJwCV3L{rSxDfJw^S0#a|Ix6Cd%-{?_Xp_b45`|+p zC~P$&6NvHe5*U~D$dEH2I|{o!+4L}eE#=*H`4Ymrz0KZdav+iuseG?|{-9SZw^Tyl z`p$fDBchFL=1l>JJWXOjW+`GY?Gj!4l2N9MFplmje5H{AV-Ka}R8m;JV)5x>>~UVQ zm9}<)kl7$S3X4sz zz2CFl>^^BanBA)@1|C6(VyfR>3tFB}Tv4m8+G0=%z(|4cRCgZ}-M|&C<`5z_vupIj zQ;*Mrz3R#n)2o8&+QW31Xvp5EKq;v-yJkLYhlO-jkT#%%5b`*r=>No^_Jy?Ats)aVEGz%3H11zjr4{1622759akq` zo1nwA0WW5TnFn}*9==cI91IFQD*NQ}QtT<)WXK19^V=LRa5Gs$aEhrhZ?>wQTvrK;LxmIY!WCw(d14R^-1&G{F^2+LkY-Mjqb-)I37L~^yv zEa2>`4;tNyUvo|GN#==v&~l~0PyssXfLJ`9AH?pZeWI-nTUL%ysAL0K5DD>WaY*TG z@gISS?8%4bO}qJkik{@)m>??N>H@Wl#iNls_QSWDb`KyXPOQvgl0xkwf*NxeYxzod z!gWn#$rCWKV|Jslqq9}>&!j!)Z|MZ8yX$35b2DJdPCPjB4(j|gpaqlD(BZvY52+>c zfp9WX8EBjzG$T0>lVDEc8%8I6k!S(J;RvPkWf7?5j403j9=qBy;orR4ODGzQ8wj8} zZ)VU{>b=UYi8WUFuDSH^vCdKkBgsNKLiQM!qZYc#n)Oq}y8@Q5p9@2KQZJuE73cmn;61M-USQHm(Ea#;d<=ndj2iJHw;Eh+zU>qOd}Q+VbVfCG{ii ziDoho4!S?#ymU>yk8(cZdIem6ijq_kV$)#1@MHR07s+okq8$*@4MgBOWH81Bje>=v z^)4Q&jew-H8ta(1RGYNv(_v5Lj>iEi25Uz;@buz-@U0rmt6U;`%yckj3OI7K0_%kP zR}aW!Jw;M=Nz*bTxNZ^}Eom1 zz6Z`cO=5VD6Ii!@sahLuG!wqQH%lNmZeR|_v&zS8=8s4`A=9W1<&gIheImo$Lrhc6 zpImUm z!2PN~K-J!pNkkHzqyD?wm8<5l^kf)0f~xg*>l`b=;~sp0e{dpdRX+NHCthZk_9wF` z(YAUShTsP44mw0SGjm+SFE>BD94b@t<$;plV|zST@Wj?cF6vLKJoFJWC?KJPhYf63 z$#6^7muiUP#>nkK9-kgr6^*%t^j_CcU{eZHD#*5!G~suv>TU|LhB1FUIC3|g|hshPe7w;Eny zr@`uj)37)}SVVaKs*QWzAAv|c+RMiqoB+#&spl*6ezmk;6H+44PuqAK*ZFh{vZgu- zf$t@4Z^7?xrOf(Q`>?)3lM5%)6_{nNTKa2!`C*=0--Vy4{M14urv&f73|q+j6Jfl& zfBlFs*EMsV2ZzKIT3`cysZQ-1)eutJ;n&p13E{?b)5JT*e_IfRo&P+r!?-@^%Hgsh z?~=2)TPoKAVJ-uAzHVo(s>a-z%LyhyQf4mKjx)}#0PJbf*)`_`A3au1q;!7SSJkq1 zDr`Mt{fM3dNWe(c#86qG9A6JzzfJ$%d-=l1v@#*0As1MaSr_>kiPNE`B>cyMlrk?V znq^BJE{iL6lL3JUvvjJlS1gU#Z9*H4(2%s5-m>LtA8%up>P+zGKud6^4<;9hAb+`L0i)VAj&z|Wn{Jux;4B|!|et)tkVb`gv zR3G4O?+vb7!(IvPVLV7rrV6WRW~> zVqN)&%RN;~SdYRfDxz+UunW~MRct%X##hCl6*G!eO)UKIei!^Hb*gKu#=!nwNn@(R zA}sn_0@9}hQZ|}}>Imm zY>N#~cSuGpkoVoFGhE_&HGz7&FR0W7=kyEKZNY_c&J9VdS~h8HcqygU)vGinY6FwF zS@%XUVwil2??{JCygX-4?x4~sm`?yu)LqH2=fJ>@zR^C)uYDbiGrSKgGi~DkJ~v3Y zWUADilv3JXx;O0y`mPPV*t%5*>I+bNg;jk)8NoQGX{fsoV6A*0vrN<;%);?(5z5p3 z5<9Tt1Pcxv;OIs8_=T#z!#AIPD)F%cdb&#=JH>$KmT*SulX=m=Uwc$}kHFNaI-osJ z8dNSSwT$w1A8g$ewN41uv>PI~{v&wy?W6oX_M?=hXlks*2%EDO$pfFGFbACRqcFpg zpY-*LeoU%vv9{1`&8Baj~*JJtfzPceUj*%L2ma}E9DjfF=I0yrc#Y{;fMx~kA`DX*x` zn=w=u&J}t)9)F2qK^8WP9MVk5#7y@M?wV{(POlWm&P%?qP}#5{pR)WNXov-^ogdbZ zn1sq#eYPnkcVRWHQ5+c0#I76WH|47Yn#@XqP&W@8UFtvC9UjQL!`Ety_SIu5L7J0l zUC!XBnWyAl!uOe|hWHhxo|{4ood)k?d(fQeTCMeYk%>6+La>E=$+N#q1WBO|~ z{Wbj(Di63`R~s2`OoXWKl-;b+G`d^Lb9XsJeZc3D9xf}L)@6sj*ufR&?;D7w(^ek- zy`%b3$8!9#t&-lnlyCVtyN*kNLUyn3`Qp4$B7xfk@5V*fD8JlpW``Haa>FlI7x8s< zM^YJy$FWWy_GsQkLJC|9C9GUMd`FL~+d|*$griy+{!)nifKZ-o+@|QGrh-J#TEx*~ zR2;clF1%*&(3Eu-hF}vW&Hj50`&Yeo7ZA&vA}-6{-kIzGPjB?HSBMZAK7+6Dp#uQ% zkHSWYoUDy%PhW@`NuS|PY}9?yzO(>}e5kp&S^sUoe_8mK0R3aI z{@(wyOOcm)n2QI~V4%Ds!7!U-XGKd8nLfFy|99j~A|x-;23kUxR5Y&5q4_$#2JEYg Q6HZWRs_Ckhs91;o2T&H^OaK4? literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/rupee.png b/app/src/main/res/drawable/rupee.png new file mode 100644 index 0000000000000000000000000000000000000000..d612a833166e362411455a7ae33b87fe4b8cff94 GIT binary patch literal 5165 zcmeHLi8s{W-`CiU;bSdCGq$o#WhrDQ292d5nwUby456`SpM>!(TVIVmG?-*x28mKW zw2&BD>@}k7jS`_e)9-D<#oO{nrb8@hO3CRj^adE+HQC4TU zxFDP+giC;%V|pr;UvLa}sD-VIfPlcnC&!PRuHaSF`A{w{v9iB)A0~`HnlmU9cG^7* z6O0dw^a}Ciij0gz5`zLleY~#vB7;Nx3RjI}IaxQI&bXZ3+uP&#|F`^Cf&W(uxT*C< zatQB+opr!)?SpXh@bd8s2ns=kVIrb{n7D+bl=S`sGO}_9_Qm@Vi2ear0)v7{A)#U65s^{XqGMv?;u8|d*OP7}r=(KS{<(Q8JtH$K`}V&% zcc{5}`2~eV#dk|e%kI(2D=O*ts~%L>)YjEEG&VK2w6?WB?0D4K_4rBm(`P+kZ{PD5 zFJJW!ydHcrG|U_sef#eHhq3XA$*Jj?kDpkxpXcVkd|g;vT3%UQ`^H}X{$u0k=GL$6 zo!#GmA~hSDxVS`1ZLQ2*4#=!Ly;k}z^fCXp&CtOr%mW(cW!c=3aJ2zOCjOtkpA223 zc%SwyO`QXmi;w$!`J`=mIW6mokK%q0|tyV1Tv@t+)e0t6eYenyqPPYq^Dd!uoSgn~YGLyh-7jn%?!|8Uv5|(`1Lt$7b=kq${T&Z%d&HrB4NB@C2 z_#ZNH0Eb7-2SE;S(8Q(_qSDw%aVu43v_n}^M{MQODZF+T2{r=|mHe0hpxMlpb(0%t zGb1uoj(U!WWltm*ChPihJ$?KXH#YQ|3S zuJ4ZR>42G@HyuIGG)nYF$}U>ed~O{J z*!qVsS=abE@|rIq#f$z=Z&(p?<-0D%lMjq%S`xvBu(#O)s}f7pA$Z1;d+ z`a2{!D&(8+_;wv1>s7;f-EadichY%{Ig~2}_^D^?WJQQ1wqvfX$6~MXu$*4&%bp*R zVGWnvB+P13>=~jXpfCk>Q7lZQevnfz>B`^1GDa@l!7bjA5i@ zb$p;_B*iD;(mQK&Be~vN=+yR~`|;II-0T{b0Y2aW$Z!bFt9oJ)yVR9;zJQw)M97v= z58@@Q;_*Zt@ZqAtz>qPp7D2>En548vis_6(S)OnC2L{!EO%dM+h3i|J5S?a#HRHgG zpErf?9d%1E`$kaL3AIPD61NY&>T75Wt|`BA?@sV7`IL~M6_TBX@ic5$ZklrjQa({8 zhjXk_l>9xVG2+CpDS7BpFZok)yQe%B|X|?r$+?oig3! zQMOO_QCv&Q;qY_h+t(A_dF_NC-cm=@1pdzqzKze36h2+Ectq_3-!Rs~cKHIhIZd`y$45(%zn!c*-aZW1&|!b+;OQ_Q=m()L zK!Jr@MdK@mcv;i=0|NoTCSMI6k4%kv|Hl*WcajnrsdMV$7xZyMR#&>`=f4X)k4UXIRlb9c{C_-AiUokL!fa18aRz{x30l5*s5~WvD+QWh* zwEjljkJk>IgtFKl~bo1ZveM=?~9;O^_t69HfYznw&I?(b0g5gz1ON+L!qrMZIL0#!lK% z`#iJ6Cl*KPZp|*T{)mc}p5A&!!;N^D+MUU6ox`z%%xI~z;wyX?w25FN+kYK+6`!T)(ptUH_&rO>q3dJ8 z@ytIyeYs0tM@d<*uT6W&nVotuO0V;G7Iu4QYOnZv9b8SRxwxXF>C-%6{%+}GvZjy5 zj^(?h2r6S1v9xi4%7}q4F@A4q`mMDj)i}-tX!`a4ojK@tyhPGvUni0)~g4Uv%4u$YgJ@ri39bHDHgYd zZn=JXMNymg0}`w`n8eERgP)TT$~cTeYg95&7(&m zw=26Tv8MPKR0o9C`0+LtH4afaKHIL2+J^WzZSBBOs*v9oNcP6cO62LT-#ZRj13Vo+ z=V083^FluY#y%hnP_2++|LFA>{-}9~vHIhXXg^A_StJ#0L^}+kN;R}b>SbL78zsIz zzfMx>FuU^ma2z4_&+a}TCh&dJD0ceMUX5opyn-!aPy7Sk+*}e+D`RVB`(o;LeC5kW zGw6)U&BIgrAt-q;)sI;5?d9i*L6e5Z5SHy!TMPTL9L452^Ti=Ja>`1HZtfv#BbTfM zS8#Q>m#$|CS75~CpP;Tm*!S_$fw2sEkhc1r;Dd{#*lchvp;`wZGXiTTw|51~CX~Ew zVO#Nnvk?vIbBV)3s$dL>H_$-ZHE!$#U+UZE5s&qu2!EO4EDe z5DMXW4ss>$%#9Y;O#%n%$Wf!S_Ty0%vMlF4zVWCB;;i9S4Wf@GSaDHzxK9tr%}^ie zGXQd}nb!RzAQxGYKF^InPFcuR|4fX^iOD)4yKQOoAUfs5;}6m-=SObD*{MMwv$Y5< zhncW68sC-}kE#@BIhWKEX5%ULr;gInjlhZ$J!ao8AXnsqjYO{m99isMo;F_w$#KpD=PbRAIO|QZpNKV===DJ$SK4z_ z3*tpc#H$kM*!PE6%x}^KTVWa$`!Bu`h#w)j)*bD4cJAwX{5P#+q|Rli%A zK4anGzh{V+6iIC#-B2pnijSn&$4QTX@4Glq*v9D285tH6u|#0awQ{o1(glH%y7Ke@ zxJf!KeFTnlMOUVU^P77tZb_qSb_KzTT2oqDvM~a=u}4*%t|GU$I4Yq#-FZn1Pp|~< zgCM<`IO_cA9*f6IR5?nu>t2;XbCem?M1y)30h%5$&q31jk>;X!m6HZGc zT;FP0vcn$9NZbk=!eR-NP}WE=fwhF=aG<4)$s>?+3bZsobq)h|sJ1yNNnke*6l;V6!Q7t7L|ff9ey@?@$PP_m6I zOLjFSZ|M?XS_Ab-Te|m9P@Qqh*p6GOf2c`YVTaHjFm{!{5W0wqP3+$!lo0`tK7Er| zR;Iujxm!*A)Fn%Cv}qlB_Suf&xPJ&FP%x29a1Cza>QI@?Q8;!{w@{k8Ccv)xqKMsU zkptxVl`*+F}0oShzahw>SC+A-< ziygnlt7UYDgXfze_Jw7UVUnr?SwCDtOIMVVgq#)Q8t zXKP4{FBD;Cs&43qt7+XziQ0f`6^W1@tW@hZL>vRFf=ZZXmd0R}eC|m1DS3p0yh|zB z)_{WX8+oP&)UTE%`yd=#O&qz?A6XWSugA%{JMohqyb+g;qRFyG-xLxr8G+UR5>mvr+ZRWsRttNhqpt#vc5kCr3+;WGz#}Pn% z-$?iEXbL8f&g?GA0O%cY*4+Pw0Cc{ZQgQ$SC+|^8o`vIzE&ndxDQn3MZ6oWuZa`pX z>QnR?bNssB0I=G`p72qT;+9mH-$m`=I9qUQ@R@bK8tFdl33r&gdykypYF@N>>?Yr8 zV$@$SMS^VqOly4b%448DWq*E`%7l66wi2v!LX7p6M>fik!!KGE<{`}XuYQx?Rap$j z!91QWzxL;5t4ro}(GWqu?~cWAvECOCOrA8LTyQ3z literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/shape1.xml b/app/src/main/res/drawable/shape1.xml new file mode 100644 index 0000000..a786807 --- /dev/null +++ b/app/src/main/res/drawable/shape1.xml @@ -0,0 +1,20 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape2.xml b/app/src/main/res/drawable/shape2.xml new file mode 100644 index 0000000..bd4c64c --- /dev/null +++ b/app/src/main/res/drawable/shape2.xml @@ -0,0 +1,18 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_previewad.xml b/app/src/main/res/layout/activity_previewad.xml new file mode 100644 index 0000000..2fe7860 --- /dev/null +++ b/app/src/main/res/layout/activity_previewad.xml @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +