
woopy | Android Universal Listings + Chat App Template
iOS, Android and Web variations can share the identical database on back4app
23 OCT 2024 • Fixed some problems with design • Updated gradle file to replace all of the frameworks to newest variations • Fixed some crashes on completely different screens
28 Jan 2022 • Fixed advert particulars crash • Updated all libraries • Migrated jcenter to jitpack • Support added for android 12 • Added notification channel for api 26+ units • Gradle upgraded
3 Aug 2021 • Updated to AndroidX and associated libraries up to date • Resolved the crashes on AD Details display screen • Resolved crash on consumer particulars display screen
13 Apr 2021 • One Signal API was carried out to inform customers instantly by push. • APK up to date. • Gradle up to date with newest model.
13 Mar 2021 • Updated app to resolve crashes on product particulars • Resolve the crash on Facebook login by updating the App ID and library model in construct.gradle
3 Feb 2021 • Location concern fastened. • Post an advert concern fastened. • Demo apk file up to date.
30 July 2020 • Woopy apk up to date. • Google Maps enhancements. Now consumer can discover locations extra effectively.
10 May 2020 • Migrated full undertaking to AndroidX (undertaking will run on newest AndroidStudio IDE)
26 Apr 2020 • Code refactoring / improved high quality
11 Sep 2019 • Fixed concern of Login with Facebook. • Fixed concern “Compatibility Issue with Facebook SDK 4.38.0” so we have now downgrade Facebook SDK to “4.37.0” nonetheless utilizing the outdated constructor, so utilizing that model fixes this explicit concern.
12 July 2019 • Code refactoring / improved high quality • Improved Home web page design by utilizing Card-View approach • Fixed crash on Car class view Ad particulars web page (Parse Exception Crash discovered at school AdDetailsActivity.java ...Now Fixed) • Fixed Image slider validation on Post Ad Page • Fixed again stack drawback from software Fix scroll view concern on all pages
11 June 2019 • Fixed push notifications and fb login
26 May 2019 • Added code for printing keyhash in logs (for Facebook) • Fixed crash on advert submitting • Updated gradle model • Updated libraries variations
19 November 2018 • Fixed login with fb concern • Updated Parse & fb libraries • Updated fb app id in strings.xml
28 October 2018 • Added pagination to adverts record and exercise record • Refactored Activity display screen (code cleanup & changed ListView with RecyclerView) • Small UI enhancements for exercise cell
28 September 2018 • Fixed OutOfMemory crash by resizing pictures earlier than displaying • Fixed third picture thumbnail displaying on Ad Sell/Edit • Fixed advert sharing through Whatsapp and different social Changes: • Updated onActivityConsequence methodology in SellEditMerchandiseActivity.java • Updated FileUtils.java and ImageLoadingUtils.java information • Updated AdDetailsActivity.java onCreate methodology • Updated FileUtils.java
17 September 2018 • Fixed picture displaying after capturing it on advert promoting / enhancing • Added createEmptyFile() methodology inside SellEditMerchandiseActivity.java and up to date openCamera() methodology • Updated provider_paths.xml file inside ’xml' folder • Fixed crash on Sell / Edit advert display screen if the situation tackle couldn’t be discovered • Displayed video filename and period if the thumbnail couldn’t be retrieved on Sell / Edit advert display screen
19 August 2018 • Fixed app crash whereas viewing the eliminated adverts on "My Likes" display screen • Fixed "Terms of use" display screen opening • Fixed crash on video selecting • Added RealPathUtil.java file to the undertaking Changes in SellEditMerchandiseActivity.java file: • Added videoPath, not null checking and alert displaying in onActivityConsequence() methodology • Modified implementation of getRealPathFromURI() methodology
13 August 2018 • Full app reskin • Code refactoring / improved high quality • Fixed consumer permissions dealing with for location, storage, digital camera • New dialog for picture/video taking/selecting • Removed pointless permissions asking • Fixed UI for Right to Left languages.
26 May 2018 • Accordingly to the brand new EU GDPR phrases, I've up to date the 'tou.html' file and Documentation. IMPORTANT: This implies that if a User asks for his/her Account deletion, you need to do it inside 24 hours, because the GDPR's "Right to be forgotten" Article states (LINK: https://gdpr-info.eu/art-17-gdpr/) • Added a Query within the 'feedbackButt()' methodology in AdDetails.java, as a way to examine for those who already despatched a Feedback to a vendor • Added an AlertDialog.Builder into the 'sendButt()' methodology in SendFeedback.java, as a way to dismiss the display screen after sending a suggestions
13 May 2018 • Fixed a problem within the 'submitAdButt()' methodology in SellEditMerchandise.java by altering the code that begins with: if (Configs.chosenLocation == null) { • Wrapped some 'adObj.put()' cases into an if assertion: // In case it 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 model in construct.gradle into 1.16.0, resulting from some concern on the newest Parse SDK and FCM: implementation 'com.parse:parse-android:1.16.0' • Edited 'getUserDetailsFromFB()' methodology in Wizard.java, this line of code: } else { currUser.put(Configs.USER_EMAIL, facebookID + "@fb.com"); }
26 April 2018 • Added this line into Configs.java (so now you may set your individual foreign money image from this file): public static String CURRENCY = "$" and edited the 'submitAdButt()' methodology into SellEditMerchandise.swift by chnging this line: adObj.put(Configs.ADS_CURRENCY, Configs.CURRENCY); • Added a few checkbox pictures into the drawable folder • Edited the 'sign_up.xml' file by including a checkbox Button, and its relative SignUp.java file accordingly (now it's important to settle for the Terms of Use to enroll) • Edited the 'fbButt()' in Wizard.java as a way to present an Alert to just accept the Terms of Service earlier than continuing to enroll with Facebook • Updated the Documentation
17 April 2018 • Added new Firebase dependencies in construct.gradle(Module:app) • Removed the 'com.google.android.gms:play-services:+' implementation and up to date all dependencies to the required ones solely • Added the 'google-services' classpath within the dependencies{} record in construct.gradle(Project:) classpath 'com.google.gms:google-services:3.2.1' • Added this Permission into Manifest.xml: <uses-permission android:identify="android.permission.RECEIVE_BOOT_COMPLETED" /> • Updated the Documentation (join your App to Firebase for FCM)
15 April 2018 • Updated to Android Studio 3.1.1 • Removed all dependencies of play-services | left solely this one in construct.gradle: implementation 'com.google.android.gms:play-services:+'
11 April 2018 • Updated to Android Studio 3.1 • Updated 'compileSdkVersion' to 27 in construct.gradle • Replaced 'compile' with 'implementation' in construct.gradle (Module: app)
6 April 2019 • Updated to Android Studio 3.1 • Updated targetSdkVersion to 27 in construct.gradle • Removed all cases of (Button), (Textual contentView), (ImageView) and so forth. (they have been gray within the code) • Moved 'public Uri getImageUri()' methodology into Configs.java | eliminated it from AdsList.java, AdDetails.java and MyLikes.java • Edited the 'Uri uri = getImageUri(this, bmp);' methodology by including 'Configs.' earlier than 'getImageUri' within the java information talked about above • Added <ParseObject> in all cases of ParseQuery, like this: ParseQuery<ParseObject> • Added this IF situation within the 'submitAdButt()' Button in SellEditMerchandise.java: || priceTxt.getText().toString().matches("") • Added 2 shortcut strategies to get and save pictures from Parse in Configs.java | modified all cases of getting and saving pictures within the code • Generally Cleaned the code
19 March 2018 • Edited the 'setOnEditorActionListener()' methodology in Home.java and AdsList.java, as a way to stop the app from performing a search in case of no textual content
16 February 2018 • Edited the Get verified code into UserProfile.java because 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 because 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 because 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 next 2 traces in map_screen.xml: android:layout_above="@+id/relativeLayout2" android:layout_below="@+id/topBarLayout"
20 January 2018 • Added this line within the dependencies record of construct.gradle (Module: app): compile 'com.squareup.okhttp3:okhttp:+'
woopy is a Universal App template the place you may browse and publish listings on the go, new or used stuff you wish to promote. You can seek for key phrases or class, chat with the vendor by his merchandise’s web page, log in with Facebook or electronic mail, like and share adverts, and much more.
Besides importing as much as 3 pictures whereas posting an advert, This app lets you additionally add a 10-second video, it is a nice characteristic that different listings classifieds apps do not need!
Users will be capable of report adverts or customers and block/unblock inappropriate customers to forestall getting chat messages from blocked folks. They may even capable of ship Feedbacks to different sellers Myukmailbox
woopy has additionally a verification electronic mail system, as soon as a consumer indicators up, the back4app server sends a verification electronic mail primarily based on the e-mail tackle the consumer typed within the signup display screen. People will be capable of see if a consumer is Verified or not by getting into his/her Profile display screen.
The Categories names and pictures are saved into the Parse Dashboard, so that you’ll be capable of add new classes remotely with out having to replace the app.
Check its demo APK to see it in motion!
Since its backend is by Parse Server, you don’t have to purchase any area/internet hosting, there are NO PHP information to add to an online server so that you’ll avoid wasting cash for server facet, additionally as a result of back4app gives a beneficiant free plan.
woopy is a local Android Studio undertaking, Universal, tremendous simple to customise, backend with Parse Server hosted on https://back4app.com
About Parse SDK and back4app
Read this text for more information about back4app and Parse SDK: https://hubpages.com/technology/Parse-SDK-will-not-shutdown-in-thanks-to-back4app
Can I host Parse Server by myself server?
Yes, though I don’t present assist for the setup course of, you may learn the official Guide right here: http://parseplatform.org
What about free assist for this template?
I can supply free assist for bugs encountered within the unique code.
Instead, for those who’ve edited the code and messed one thing up with it, I could apply some price to repair it both through GroupViewer or by checking your app undertaking information immediately on my pc.
How do I rename the app’s bundle identify?
Read this tutorial to learn to rename a bundle identify: https://hubpages.com/technology/Android-How-to-rename-an-app-package
Should I exploit the newest model of Android Studio to edit this template?
Yes, I at all times replace my apps to the newest model of the IDE and also you additionally ought to be sure you’ve up to date the Android Tools to their newest model of the Android SDK supervisor.
The demo APK crashes on startup
Make positive that the minimal Android model of your machine is the one listed within the FEATURES part under. If the issue persists, please contact me by means of my profile’s contact type and ship me the Logcat message you get when the app crashes together with the steps you made to breed the crash.
Please word that not all actual units print an error Logcat message, on this case simply run the APK into the Android Studio’s emulator and also you’ll absolutely get the crimson messages about your concern.
How do I take away AdMob banner adverts?
- Enter the .xml information the place there’s an AdView and take away its code:
<com.google.android.gms.adverts.AdView android:id="@+id/admobBanner" android:layout_width="wrap_content" android:layout_height="wrap_content" adverts:adSize="BANNER" adverts:adUnitId="@string/ADMOB_BANNER_UNIT_ID" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true"> </com.google.android.gms.adverts.AdView>- Enter the .java information the place there’s an AdRequest occasion into its onCreate() methodology and take away its code:
// Init AdMob banner AdView mAdView = (AdView) discoverViewById(R.id.admobBanner); AdRequest adRequest = new AdRequest.Builder().construct(); mAdView.loadAd(adRequest);- Lastly, take away the play-services-ads reference within the construct.gradle file:
compile 'com.google.android.gms:play-services-ads:+'
How to vary pictures within the Categories class of my Parse Dashboard?
After importing the Categories.json file into your individual Parse Dashboard, it’s important to double-click within the empty house between the sting of a cell and the blue picture button to interchange the present pictures, examine the screenshot under:
After importing Categories.json in my Parse Dashboard, I see no knowledge
That could occur generally, it’s a bug within the Parse Dashboard, so on this case you need to manually add rows and columns by yourself.
1. Click Edit -> Add a column, select String as kind of knowledge and kind precisely class, then click on ‘Add column’
2. Click Edit -> Add a column, select File as kind of knowledge and kind precisely picture, then click on ‘Add column’
3. Now you may enter the empty cells and insert the identify of your first Category, doublie click on within the empty cell of the picture column and add your first picture.
4. Repeat the steps above for every class you wish to insert in your Parse database.
How do I modify the order of Categories?
The solely approach to try this is to take away all rows from the Categories class and add then once more primarily based on the order you need classes to be proven within the Home display screen of the app since they get ordered by their ‘createdAt’ date.
- Android Studio 3.x undertaking – Universal – Android 5.0+
- AdMob banners
- Backend with Parse Server hosted on back}app
- Browse adverts by Category or search by Keywords
- Sort adverts by Recent, Price, Most preferred and Condition
- Map with radius distance circle and slider to vary the close by distance
- Post/edit adverts, with 3 pics and an optionally available 10-second video
- Send/learn Feedbacks and Comments
- Report/block inappropriate customers or adverts
- Chat with sellers throughout the app, with the chance to connect photos to the chat messages
- Push Notifications for chat messages, likes, feedbacks and feedback
- Check your preferred adverts within the My Likes display screen
- Activity display screen
- List of lively chats
- Easy to Customize
- Well commented code
- User Guide and PSD graphics included
- The newest model of Android Studio and primary data of its interface
- Photoshop (or comparable photograph editor softwares)
- Windows PC or Mac
- Free account on back4app
- Facebook developer account
- Google Developer and Play Store account
- A sound AdMob account account to create a banner UNIT ID
- An actual machine with Android 5.0 or above (really useful)