woopy | Android Universal Listings + Chat App Template icon

woopy | Android Universal Listings + Chat App Template

woopy | Android Universal Listings + Chat App Template

Description

iOS, Android and Web versions can share the same database on back4app

30 July 2020
• Woopy apk updated. 
• Google Maps improvements. Now user can find places more efficiently.
10 May 2020
• Migrated complete project to AndroidX (project will run on latest AndroidStudio IDE)
26 Apr 2020
• Code refactoring / improved quality
11 Sep 2019
• Fixed issue of Login with Facebook.  
• Fixed issue “Compatibility Issue with Facebook SDK 4.38.0” so we have downgrade Facebook SDK to “4.37.0” still using the old constructor, so using that version fixes this particular issue.
12 July 2019
• Code refactoring / improved quality
• Improved Home page design by using Card-View technique 
• Fixed crash on Car category view Ad details page 
           (Parse Exception Crash found in class AdDetailsActivity.java ...Now Fixed)
• Fixed Image slider validation on Post Ad Page
• Fixed back stack problem from application 
Fix scroll view issue on all pages

11 June 2019
• Fixed push notifications and facebook login
26 May 2019
• Added code for printing keyhash in logs (for Facebook)
• Fixed crash on ad submitting
• Updated gradle version
• Updated libraries versions
19 November 2018
• Fixed login with facebook issue
• Updated Parse & facebook libraries
• Updated facebook app id in strings.xml
28 October 2018
• Added pagination to ads list and activity list
• Refactored Activity screen (code cleanup & replaced ListView with RecyclerView)
• Small UI improvements for activity cell
28 September 2018
• Fixed OutOfMemory crash by resizing images before displaying
• Fixed 3rd image thumbnail displaying on Ad Sell/Edit
• Fixed ad sharing via Whatsapp and other social
Changes:
• Updated onActivityResult method in SellEditItemActivity.java
• Updated FileUtils.java and ImageLoadingUtils.java files
• Updated AdDetailsActivity.java onCreate method
• Updated FileUtils.java
17 September 2018
• Fixed image displaying after capturing it on ad selling / editing
• Added createEmptyFile() method inside SellEditItemActivity.java and updated openCamera() method
• Updated provider_paths.xml file inside ’xml' folder
• Fixed crash on Sell / Edit ad screen if the location address couldn’t be found
• Displayed video filename and duration if  the thumbnail couldn’t be retrieved on Sell / Edit ad screen
19 August 2018
• Fixed app crash while viewing the removed ads on "My Likes" screen
• Fixed "Terms of use" screen opening
• Fixed crash on video picking
• Added RealPathUtil.java file to the project
Changes in SellEditItemActivity.java file:
• Added videoPath, not null checking and alert displaying in onActivityResult() method
• Modified implementation of getRealPathFromURI() method
13 August 2018
• Full app reskin
• Code refactoring / improved quality
• Fixed user permissions handling for location, storage, camera
• New dialog for image/video taking/picking
• Removed unnecessary permissions asking
• Fixed UI for Right to Left languages.
26 May 2018
• Accordingly to the new EU GDPR terms, I've updated the 'tou.html' file and Documentation.
IMPORTANT: This means that if a User asks for his/her Account deletion, you must do it within 24 hours, as the GDPR's "Right to be forgotten" Article states (LINK: https://gdpr-info.eu/art-17-gdpr/)
• Added a Query in the 'feedbackButt()' method in AdDetails.java, in order to check if you already sent a Feedback to a seller
• Added an AlertDialog.Builder into the 'sendButt()' method in SendFeedback.java, in order to dismiss the screen after sending a feedback
13 May 2018
• Fixed an issue in the 'submitAdButt()' method in SellEditItem.java by changing the code that starts with:
    if (Configs.chosenLocation == null) {

• Wrapped some 'adObj.put()' instances into an if statement:
   // In case this is a new Ad
   if (adObj.getObjectId() == null) {
      adObj.put(Configs.ADS_IS_REPORTED, false);
      adObj.put(Configs.ADS_LIKES, 0);
      adObj.put(Configs.ADS_COMMENTS, 0);
   }
8 May 2018
• Changed Parse version in build.gradle into 1.16.0, due to some issue on the latest Parse SDK and FCM:
    implementation 'com.parse:parse-android:1.16.0'

• Edited 'getUserDetailsFromFB()' method in Wizard.java, this line of code:
    } else { currUser.put(Configs.USER_EMAIL,  facebookID + "@facebook.com"); }
26 April 2018
• Added this line into Configs.java (so now you can set your own currency symbol from this file):
   public static String CURRENCY = "$" 

and edited the 'submitAdButt()' method into SellEditItem.swift by chnging this line:
   adObj.put(Configs.ADS_CURRENCY, Configs.CURRENCY);

• Added a couple of checkbox images into the drawable folder
• Edited the 'sign_up.xml' file by adding a checkbox Button, and its relative SignUp.java file accordingly (now you have to accept the Terms of Use to sign up)  
• Edited the 'fbButt()' in Wizard.java in order to show an Alert to accept the Terms of Service before proceeding to sign up with Facebook
• Updated the Documentation
17 April 2018
• Added new Firebase dependencies in build.gradle(Module:app)
• Removed the 'com.google.android.gms:play-services:+' implementation and updated all dependencies to the required ones only
• Added the 'google-services' classpath in the dependencies{} list in build.gradle(Project:)
    classpath 'com.google.gms:google-services:3.2.1'

• Added this Permission into Manifest.xml: 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

• Updated the Documentation (connect your App to Firebase for FCM)
15 April 2018
• Updated to Android Studio 3.1.1
• Removed all dependencies of play-services | left only this one in build.gradle:
     implementation 'com.google.android.gms:play-services:+'
11 April 2018
• Updated to Android Studio 3.1
• Updated 'compileSdkVersion' to 27 in build.gradle
• Replaced 'compile' with 'implementation' in build.gradle (Module: app)
6 April 2019
• Updated to Android Studio 3.1
• Updated targetSdkVersion to 27 in build.gradle
• Removed all instances of (Button), (TextView), (ImageView) etc. (they were grey in the code)
• Moved 'public Uri getImageUri()' method into Configs.java | removed it from AdsList.java, AdDetails.java and MyLikes.java
• Edited the 'Uri uri = getImageUri(this, bmp);' method by adding 'Configs.' before 'getImageUri' in the java files mentioned above
• Added <ParseObject> in all instances of ParseQuery, like this:
    ParseQuery<ParseObject>
• Added this IF condition in the 'submitAdButt()' Button in SellEditItem.java:
    || priceTxt.getText().toString().matches("") 
• Added 2 shortcut methods to get and save images from Parse in Configs.java | changed all instances of getting and saving images in the code
• Generally Cleaned the code
19 March 2018
• Edited the 'setOnEditorActionListener()' method in Home.java and AdsList.java, in order to prevent the app from performing a search in case of no text
16 February 2018
• Edited the Get verified code into UserProfile.java as it follows:
   if (userObj.get(Configs.USER_EMAIL_VERIFIED) != null) {
      if (userObj.getBoolean(Configs.USER_EMAIL_VERIFIED)) {
         verifTxt.setText("Verified: Yes");
      } else { verifTxt.setText("Verified: No"); }
   } else { verifTxt.setText("Verified: No"); }

• Edited the Get verified code in Account.java as it follows:
    if (currUser.get(Configs.USER_EMAIL_VERIFIED) != null) {
            if (currUser.getBoolean(Configs.USER_EMAIL_VERIFIED)) {
                verifiedtxt.setText("Verified: Yes");
            } else { verifiedtxt.setText("Verified: No"); }
     } else { verifiedtxt.setText("Verified: No"); } 

• Edited the Get verified code in AdDetails.java as it follows:
    if (sellerPointer.get(Configs.USER_EMAIL_VERIFIED) != null) {
       if (sellerPointer.getBoolean(Configs.USER_EMAIL_VERIFIED)) {
          verifiedTxt.setText("Verified: Yes");
       } else { verifiedTxt.setText("Verified: No"); }
    } else { verifiedTxt.setText("Verified: No"); }

• Removed the following 2 lines in map_screen.xml:
        android:layout_above="@+id/relativeLayout2" 
        android:layout_below="@+id/topBarLayout" 
20 January 2018
• Added this line in the dependencies list of build.gradle (Module: app):
    compile 'com.squareup.okhttp3:okhttps:+'

woopy is a Universal App template where you can browse and post listings on the go, new or used stuff you want to sell. You can search for keywords or category, chat with the seller by his item’s page, log in with Facebook or email, like and share ads, and a lot more. Besides uploading up to 3 images while posting an ad, This app allows you to also upload a 10-second video, this is a great feature that other listings classifieds apps do not have! Users will be able to report ads or users and block/unblock inappropriate users to prevent getting chat messages from blocked people. They will also able to send Feedbacks to other sellers woopy has also a verification email system, once a user signs up, the back4app server sends a verification email based on the email address the user typed in the signup screen. People will be able to see if a user is Verified or not by entering his/her Profile screen. The Categories names and images are stored into the Parse Dashboard, so you’ll be able to add new categories remotely without having to update the app. Check its demo APK to see it in action!

Since its backend is by Parse Server, you don’t have to buy any domain/hosting, there are NO PHP files to upload to a web server so you’ll save some money for server side, also because back4app offers a generous free plan.

woopy is a native Android Studio project, Universal, super easy to customize, backend with Parse Server hosted on https://back4app.com

About Parse SDK and back4app

Read this article for more info about back4app and Parse SDK:

Can I host Parse Server on my own server?

Yes, although I don’t provide support for the setup process, you can read the official Guide here: https://parseplatform.org

What about free support for this template?

I can offer free support for bugs encountered in the original code. Instead, if you’ve edited the code and messed something up with it, I may apply some fee to fix it either via TeamViewer or by checking your app project files directly on my computer.

How do I rename the app’s package name?

Read this tutorial to learn how to rename a package name:

Should I use the latest version of Android Studio to edit this template?

Yes, I always update my apps to the latest version of the IDE and you also should make sure you’ve updated the Android Tools to their latest version of the Android SDK manager.

The demo APK crashes on startup

Make sure that the minimum Android version of your device is the one listed in the FEATURES section below. If the problem persists, please contact me through my profile’s contact form and send me the Logcat message you get when the app crashes along with the steps you made to reproduce the crash. Please note that not all real devices print an error Logcat message, in this case just run the APK into the Android Studio’s emulator and you’ll surely get the red messages about your issue.

How do I remove AdMob banner ads?

  1. Enter the .xml files where there’s an AdView and remove its code:
        <com.google.android.gms.ads.AdView
            android:id="@+id/admobBanner" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            ads:adSize="BANNER" 
            ads:adUnitId="@string/ADMOB_BANNER_UNIT_ID" 
            android:layout_alignParentBottom="true" 
            android:layout_centerHorizontal="true">
        </com.google.android.gms.ads.AdView>
    
  2. Enter the .java files where there’s an AdRequest instance into its onCreate() method and remove its code:
            // Init AdMob banner
            AdView mAdView = (AdView) findViewById(R.id.admobBanner);
            AdRequest adRequest = new AdRequest.Builder().build();
            mAdView.loadAd(adRequest);
    
  3. Lastly, remove the play-services-ads reference in the build.gradle file:
        compile 'com.google.android.gms:play-services-ads:+'
    

How to change images in the Categories class of my Parse Dashboard?

After importing the Categories.json file into your own Parse Dashboard, you have to double-click in the empty space between the edge of a cell and the blue image button to replace the existing images, check the screenshot below:

After importing Categories.json in my Parse Dashboard, I see no data

That may happen sometimes, it’s a bug in the Parse Dashboard, so in this case you must manually add rows and columns on your own. 1. Click Edit -> Add a column, choose String as type of data and type exactly category, then click ‘Add column’ 2. Click Edit -> Add a column, choose File as type of data and type exactly image, then click ‘Add column’ 3. Now you can enter the empty cells and insert the name of your first Category, doublie click in the empty cell of the image column and upload your first image. 4. Repeat the steps above for each category you want to insert in your Parse database.

How do I change the order of Categories?

The only way to do that is to remove all rows from the Categories class and add then again based on the order you want categories to be shown in the Home screen of the app since they get ordered by their ‘createdAt’ date.

  • Android Studio 3.x project – Universal – Android 5.0+
  • AdMob banners
  • Backend with Parse Server hosted on back}app
  • Browse ads by Category or search by Keywords
  • Sort ads by Recent, Price, Most liked and Condition
  • Map with radius distance circle and slider to change the nearby distance
  • Post/edit ads, with 3 pics and an optional 10-second video
  • Send/read Feedbacks and Comments
  • Report/block inappropriate users or ads
  • Chat with sellers within the app, with the possibility to attach pictures to the chat messages
  • Push Notifications for chat messages, likes, feedbacks and comments
  • Check your liked ads in the My Likes screen
  • Activity screen
  • List of active chats
  • Easy to Customize
  • Well commented code
  • User Guide and PSD graphics included

  • The latest version of Android Studio and basic knowledge of its interface
  • Photoshop (or similar photo editor softwares)
  • Windows PC or Mac
  • Free account on back4app
  • Facebook developer account
  • Google Developer and Play Store account
  • A valid AdMob account account to create a banner UNIT ID
  • A real device with Android 5.0 or above (recommended)

External listing. code.market does not sell this product and does not process payment for it. Pricing, payment, delivery, licensing, refunds, and support are handled by the third-party merchant on its own website. We may earn an affiliate commission from a referral. Details.

Products of the Week.

Submit
codester.com

codester.com

SocialDesk+: Omnichannel Social Commerce & Business Management Platform This is stronger than simply “Social Commerce and Messaging” because it tells buyers this is a complete business platform, not just a messaging script. Turn Social Conversations Into Sales SocialDesk+ is a complete omnichannel social commerce and business management platform built for businesses that sell and communicate with customers through social media. Instead of switching between WhatsApp, Facebook, Instagram and TikTok, businesses can manage customer conversations, comments, products, leads, follow-ups, automation, teams and business reports from one professional workspace. And because the full source code is included, developers, agencies and entrepreneurs can customize, rebrand and launch SocialDesk+ as their own business solution or SaaS platform. 🚀 Build Your Own Social Commerce Business SocialDesk+ gives you the foundation to launch: - Your own SaaS platform - A white-label social CRM - A social-commerce management system - A customer communication platform - A business messaging solution - A custom solution for clients - A multi-business subscription platform 💬 Connect Your Customers Supported social channels include: WhatsApp • Facebook • Instagram • TikTok Bring supported conversations into one centralized workspace and help businesses respond faster without constantly switching between platforms. 🛍️ More Than a Messaging Platform SocialDesk+ combines communication with the tools businesses need to manage customer opportunities: Inbox Manage customer conversations from connected channels. Comments Monitor and respond to social-media comments. Customers & Leads Organize customer information and potential buyers. Products & Catalog Manage products and give your team quick access to product information. Follow-Ups Make sure potential customers don't get forgotten. Automation Automate repetitive customer questions and responses. AI Assistant Provide AI-assisted communication when configured. Team Management Give managers and staff access to the business workspace. Reports & Analytics Track activity using business reports and analytics. The current product listing already includes these capabilities. 🔥 Why Buyers Will Want It Launch Faster Start with an already-built business platform instead of developing the entire system from zero. Customize Everything The full source code is included, allowing developers to change branding, features, workflows and integrations. Build a SaaS Create multiple business workspaces and offer SocialDesk+ as a subscription-based service. Sell to Businesses Offer it to retailers, restaurants, service businesses, online sellers, agencies and other businesses that communicate with customers through social media. Mobile + Web + Backend This isn't just a mobile UI template. It includes: - Flutter mobile application - Python / FastAPI backend - Web interface - Administration tools - Database infrastructure - API-based architecture - SQLite / PostgreSQL support - Android and iOS project structure 💼 One Platform. Multiple Business Opportunities. For SaaS Entrepreneurs Launch your own subscription platform and allow multiple businesses to operate inside separate workspaces. For Software Agencies Customize and rebrand the platform for clients instead of building an omnichannel business system from scratch. For Developers Use the complete source code as a foundation for your own social-commerce or customer-management product. For Businesses Deploy a dedicated version for your own customer-service and social-commerce operations. 🧩 What's Included Mobile - Flutter / Dart - Android - iOS project Backend - Python - FastAPI - SQLAlchemy - Alembic Database - SQLite - PostgreSQL Web - HTML5 - CSS3 - JavaScript Deployment - Docker - Docker Compose - Production configuration Business Platform - Multi-workspace architecture - Authentication - Teams - Customers - Products - Messaging - Comments - Automation - Reports - Subscriptions - Administration The current listing also documents third-party integrations such as Meta, TikTok, Stripe, Firebase, SMTP and optional OpenAI configuration. ⚡ What Makes SocialDesk+ Different? You're not buying a simple: ❌ Chat UI ❌ WhatsApp clone ❌ Flutter template ❌ Admin dashboard ❌ Basic CRM You're getting a complete business platform foundation that can be customized, branded and commercialized. Connect. Automate. Manage. Grow. SocialDesk+ Omnichannel Social Commerce & Business Management Platform One important change I'd make to the current listing The current page starts with: “A simple guide to managing your social conversations, customers, products and business activity.”

Other · 3,485 views · 30 clicks

$2

woopy | Android Universal Listings + Chat App Template | Code Market