This tutorial will cover how to implement a Wallet using PayUmoney with Firebase as your backend. We will also deep dive on how to add customization to the Payment Activity.
Create a PayUmoney account. Get your Merchant Key, Merchant Salt (secret) and your Merchant ID.
Merchant Salt should be kept confidential and should always reside on your server. Never put the Merchant Salt in your app.
Here is a sample of how these look:
Merchant ID: 6392590
Merchant Key: oVWDEmPK
Merchant Salt: cdrcf1cyTj
Add this to your app level gradle file:
Update to the latest version.
CameraX is a Jetpack support library, built to help you make camera app development easier. While it leverages the capabilities of camera2, it uses a simpler, use case-based approach that is lifecycle-aware.
CameraX introduces use cases, which allow you to focus on the task you need to get done instead of spending time managing device-specific nuances. There are several use cases:
Preview: get an image on display.
Image Analysis: access a buffer seamlessly for use in your algorithms, such as to pass into MLKit.
Image capture: save high-quality images.
It support the basic features like aspect ratio, orientation, rotation, preview…
Secondary Mentor: Chathuranga Muthukuda
Student: Deepak Prasad
Project Link: OpenMRS Android Client v2.8+
This project solely targets the development of the OpenMRS Android Client. It aims to add new features, fix bugs and improve the UI and performance of the app.
The app now has a Dark Mode to save us…
This week was great. Got to learn about deployment of OpenMRS for both production as well as testing.
For developing, we have to follow some steps to set up the environment for OpenMRS. Lets go through it step by step:
Nothing much happened this week.
This week was mainly attributed to gathering information for Password Reset. The actual problem was getting the API and reading about how to implement it because the API endpoint wasn’t available on the official site.
The Password Reset requires an email tied to the User’s account. The reset link will be shared to that email id. But the blocker is that the WebApp still does not has a field to enter the email of the user.
To get over this obstacle, we need to configure the WebApp locally and through MySQL, we need to create…
Provider dashboard was added where we can see the details of the Provider. Currently his name and designation is shown.
In future, the Provider Dashboard will have the Patient-Provider relationships and Provider-Provider relationships.
Time has flew so fast and more than half of GSoC’s coding period is over.
This was one of the features that to took so much effort. I though it would be easy to add “just another theme” to the app but I was wrong.
It took me more than 5–6 days of continuous work to get it working. Although it is currently experimental, we can be sure that the next additions to the app will be compatible with multiple themes.
Some of the common pitfalls to look for while adding a dark theme to your app are:
The biggest feature request by the community — Provider Module, was implemented fully this week.
Using the REST API, now we can add Providers. The REST call is
Call<Provider> addProvider(@Body Provider provider);
Inputs required for creating a Provider — First name, last name and provider identifier. Provider identifier can be anything like nurse, clerk, doctor etc.
REST call —
Call<Provider> editProvider(@Path("uuid") String uuid,
@Body Provider provider);
REST call —
Call<ResponseBody> deleteProvider(@Path("uuid") String uuid);
Due to parallel developments going on during GSoC, sometimes the Demo server for OpenMRS will be down and that will hamper the development pace.
This week was full of learning and enriching experiences. The biggest blocker since the 3rd week was removed and eventually a the Provider’s Module (FETCH) was merged.
Last week we saw how the LiveData’s onChange() method’s testing so much trouble. Let’s see how I got to solve it.
I figured out that onChange() is triggered on an asynchronous thread but testing runs on a single main thread. Therefore the following error always popped up.
Found out that using the following rule will help in running the test on a single thread.