From df648f1ef0b8a47f50cd16497adcd941b3f5578a Mon Sep 17 00:00:00 2001 From: Sagar S Date: Thu, 3 Oct 2019 12:17:44 +0530 Subject: [PATCH] Done changes with https Designed new login screen for SAMS logo implementation --- app/build.gradle | 23 +- .../loginActivity/LoginActivity.java | 217 +++++++------- .../setupActivity/SetupActivity.java | 8 +- .../intelehealth/client/app/AppConstants.java | 6 +- .../client/app/IntelehealthApplication.java | 2 +- .../database/dao/EmergencyEncounterDAO.java | 2 +- .../client/database/dao/PullDataDAO.java | 4 +- .../client/networkApiCalls/ApiClient.java | 2 +- .../services/DownloadProtocolsTask.java | 4 +- .../client/utilities/SessionManager.java | 4 +- .../client/utilities/UrlModifiers.java | 14 +- .../client/widget/PasswordEditText.java | 237 +++++++++++++++ app/src/main/res/drawable-hdpi/ic_avatar.png | Bin 0 -> 1000 bytes .../drawable-hdpi/ic_eye_off_white_24dp.png | Bin 0 -> 1178 bytes .../res/drawable-hdpi/ic_eye_white_24dp.png | Bin 0 -> 796 bytes app/src/main/res/drawable-hdpi/ic_lock.png | Bin 0 -> 846 bytes .../drawable-xhdpi/ic_eye_off_white_24dp.png | Bin 0 -> 1462 bytes .../res/drawable-xhdpi/ic_eye_white_24dp.png | Bin 0 -> 1147 bytes .../drawable-xxhdpi/ic_eye_off_white_24dp.png | Bin 0 -> 2288 bytes .../res/drawable-xxhdpi/ic_eye_white_24dp.png | Bin 0 -> 1757 bytes app/src/main/res/drawable/avatar.png | Bin 1513 -> 0 bytes app/src/main/res/drawable/block.png | Bin 1302 -> 0 bytes app/src/main/res/drawable/ic_sams.png | Bin 0 -> 71165 bytes app/src/main/res/layout/activity_login.xml | 276 ++++++++---------- app/src/main/res/values-b+cb/strings.xml | 2 + app/src/main/res/values-bn/strings.xml | 2 + app/src/main/res/values-cb/strings.xml | 1 + app/src/main/res/values-or/strings.xml | 2 + app/src/main/res/values/attrs.xml | 9 + app/src/main/res/values/colors.xml | 9 + app/src/main/res/values/strings.xml | 6 +- build.gradle | 2 +- 32 files changed, 535 insertions(+), 297 deletions(-) create mode 100644 app/src/main/java/io/intelehealth/client/widget/PasswordEditText.java create mode 100644 app/src/main/res/drawable-hdpi/ic_avatar.png create mode 100644 app/src/main/res/drawable-hdpi/ic_eye_off_white_24dp.png create mode 100644 app/src/main/res/drawable-hdpi/ic_eye_white_24dp.png create mode 100644 app/src/main/res/drawable-hdpi/ic_lock.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_eye_off_white_24dp.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_eye_white_24dp.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_eye_off_white_24dp.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_eye_white_24dp.png delete mode 100644 app/src/main/res/drawable/avatar.png delete mode 100644 app/src/main/res/drawable/block.png create mode 100644 app/src/main/res/drawable/ic_sams.png diff --git a/app/build.gradle b/app/build.gradle index a1049710f1..93c91660d0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,10 +38,9 @@ dependencies { implementation 'com.android.support:support-v4:28.0.0' testImplementation 'junit:junit:4.13-beta-2' - androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' - // mvvm + //mvvm implementation 'android.arch.lifecycle:extensions:1.1.1' implementation "android.arch.lifecycle:viewmodel:1.1.1" // JSON Converter @@ -60,14 +59,14 @@ dependencies { //Permission libraby implementation 'gun0912.ted:tedpermission:2.2.2' //logging and interceptor -// implementation "com.squareup.okhttp3:logging-interceptor:3.14.1" +// implementation "com.squareup.okhttp3:logging-interceptor:3.14.1" implementation "com.squareup.okhttp3:logging-interceptor:3.8.0" - // debug bridge - debugImplementation 'com.amitshekhar.android:debug-db:1.0.4' + //debug bridge +// debugImplementation 'com.amitshekhar.android:debug-db:1.0.4' //image loaders - implementation 'com.squareup.picasso:picasso:2.71828' +// implementation 'com.squareup.picasso:picasso:2.71828' implementation 'com.github.bumptech.glide:glide:3.8.0' //Uncomment below line to enable multidex support for Kitkat implementation 'com.android.support:multidex:1.0.3' @@ -76,14 +75,14 @@ dependencies { //Google Guava implementation 'com.google.guava:guava:27.1-jre' //Storage librabry - implementation 'com.snatik:storage:2.1.0' +// implementation 'com.snatik:storage:2.1.0' // dexter permission // implementation 'com.karumi:dexter:5.0.0' //Room database - annotationProcessor "android.arch.lifecycle:compiler:1.1.1" - implementation "android.arch.persistence.room:runtime:1.1.1" - annotationProcessor "android.arch.persistence.room:compiler:1.1.1" - implementation "android.arch.persistence.room:rxjava2:1.1.1" +// annotationProcessor "android.arch.lifecycle:compiler:1.1.1" +// implementation "android.arch.persistence.room:runtime:1.1.1" +// annotationProcessor "android.arch.persistence.room:compiler:1.1.1" +// implementation "android.arch.persistence.room:rxjava2:1.1.1" //Parse SDK implementation 'com.parse:parse-android:1.15.7' //date and time @@ -106,6 +105,8 @@ dependencies { implementation "com.google.firebase:firebase-messaging:17.3.4" implementation 'com.google.firebase:firebase-crash:16.2.1' + implementation 'com.rengwuxian.materialedittext:library:2.1.4' + } apply plugin: 'com.google.gms.google-services' // Google Play services Gradle plugin diff --git a/app/src/main/java/io/intelehealth/client/activities/loginActivity/LoginActivity.java b/app/src/main/java/io/intelehealth/client/activities/loginActivity/LoginActivity.java index 737526875c..885a0a9d70 100644 --- a/app/src/main/java/io/intelehealth/client/activities/loginActivity/LoginActivity.java +++ b/app/src/main/java/io/intelehealth/client/activities/loginActivity/LoginActivity.java @@ -27,6 +27,7 @@ import android.widget.Toast; import com.google.gson.Gson; +import com.rengwuxian.materialedittext.MaterialEditText; import io.intelehealth.client.R; import io.intelehealth.client.activities.homeActivity.HomeActivity; @@ -68,8 +69,9 @@ public class LoginActivity extends AppCompatActivity { Base64Utils base64Utils = new Base64Utils(); String encoded = null; // UI references. - private AutoCompleteTextView mUsernameView; - private EditText mPasswordView; + private MaterialEditText mUsernameView; + private MaterialEditText mPasswordView; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -117,24 +119,23 @@ public void onClick(View v) { } } // Set up the login form. - mUsernameView = findViewById(R.id.email); + mUsernameView = findViewById(R.id.et_email); // populateAutoComplete(); TODO: create our own autocomplete code - mPasswordView = findViewById(R.id.password); - mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() { - @Override - public boolean onEditorAction(TextView v, int id, KeyEvent event) { - if (id == R.id.login || id == EditorInfo.IME_NULL) { - attemptLogin(); - return true; - } - return false; - } - }); + mPasswordView = findViewById(R.id.et_password); +// mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() { +// @Override +// public boolean onEditorAction(TextView v, int id, KeyEvent event) { +// if (id == R.id.login || id == EditorInfo.IME_NULL) { +// attemptLogin(); +// return true; +// } +// return false; +// } +// }); Button mEmailSignInButton = findViewById(R.id.email_sign_in_button); mEmailSignInButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Logger.logD(TAG, "button pressed"); attemptLogin(); } }); @@ -154,35 +155,41 @@ private void attemptLogin() { // } // Reset errors. - mUsernameView.setError(null); - mPasswordView.setError(null); +// mUsernameView.setError(null); +// mPasswordView.setError(null); // Store values at the time of the login attempt. - String email = mUsernameView.getText().toString(); - String password = mPasswordView.getText().toString(); - + String email = mUsernameView.getText().toString().trim(); + String password = mPasswordView.getText().toString().trim(); - boolean cancel = false; - View focusView = null; +// boolean cancel = false; +// View focusView = null; + // Check for a valid email address. + if (TextUtils.isEmpty(email)) { + mUsernameView.setError(getString(R.string.enter_username)); + mUsernameView.requestFocus(); + return; + } // Check for a valid password, if the user entered one. - if (!TextUtils.isEmpty(password) && !isPasswordValid(password)) { - mPasswordView.setError(getString(R.string.error_invalid_password)); - focusView = mPasswordView; - cancel = true; + if (TextUtils.isEmpty(password)) { + mPasswordView.setError(getString(R.string.enter_password)); + mPasswordView.requestFocus(); + return; } - // Check for a valid email address. - if (TextUtils.isEmpty(email)) { - mUsernameView.setError(getString(R.string.error_field_required)); - focusView = mUsernameView; - cancel = true; + if (password.length() < 4) { + mPasswordView.setError(getString(R.string.error_invalid_password)); + mPasswordView.requestFocus(); + return; } - if (cancel) { - // There was an error; don't attempt login and focus the first - // form field with an error. - focusView.requestFocus(); - } else if (NetworkConnection.isOnline(this)) { + +// if (cancel) { +// // There was an error; don't attempt login and focus the first +// // form field with an error. +// focusView.requestFocus(); +// } else + if (NetworkConnection.isOnline(this)) { // Show a progress spinner, and kick off a background task to // perform the user login attempt. // showProgress(true); @@ -201,7 +208,7 @@ private void attemptLogin() { */ private boolean isPasswordValid(String password) { //TODO: Replace this with your own logic - return password.length() > 4; + return password.length() < 4; } private void showProgress(final boolean show) { @@ -271,96 +278,96 @@ public void UserLoginTask(String mEmail, String mPassword) { // Log.d(TAG, "UN: " + USERNAME); // Log.d(TAG, "PW: " + PASSWORD); String urlString = urlModifiers.loginUrl(sessionManager.getServerUrl()); - Logger.logD(TAG, "usernaem and password" + mEmail + mPassword); + Logger.logD(TAG, "usernaem and password" + mEmail + mPassword); encoded = base64Utils.encoded(mEmail, mPassword); - sessionManager.setEncoded(encoded); + sessionManager.setEncoded(encoded); showProgress(true); StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); - Observable loginModelObservable = AppConstants.apiInterface.LOGIN_MODEL_OBSERVABLE(urlString, "Basic " + encoded); - loginModelObservable.subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + Observable loginModelObservable = AppConstants.apiInterface.LOGIN_MODEL_OBSERVABLE(urlString, "Basic " + encoded); + loginModelObservable.subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(LoginModel loginModel) { - int responsCode = loginModel.hashCode(); - Boolean authencated = loginModel.getAuthenticated(); - Gson gson = new Gson(); - Logger.logD(TAG, "success" + gson.toJson(loginModel)); - sessionManager.setChwname(loginModel.getUser().getDisplay()); - sessionManager.setCreatorID(loginModel.getUser().getUuid()); - sessionManager.setSessionID(loginModel.getSessionId()); - sessionManager.setProviderID(loginModel.getUser().getPerson().getUuid()); - UrlModifiers urlModifiers = new UrlModifiers(); - String url = urlModifiers.loginUrlProvider(sessionManager.getServerUrl(), loginModel.getUser().getUuid()); - if (authencated) { - Observable loginProviderModelObservable = AppConstants.apiInterface.LOGIN_PROVIDER_MODEL_OBSERVABLE(url, "Basic " + encoded); - loginProviderModelObservable - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new DisposableObserver() { - @Override - public void onNext(LoginProviderModel loginProviderModel) { - if (loginProviderModel.getResults().size() != 0) { - for (int i = 0; i < loginProviderModel.getResults().size(); i++) { - Log.i(TAG, "doInBackground: " + loginProviderModel.getResults().get(i).getUuid()); - sessionManager.setProviderID(loginProviderModel.getResults().get(i).getUuid()); + @Override + public void onNext(LoginModel loginModel) { + int responsCode = loginModel.hashCode(); + Boolean authencated = loginModel.getAuthenticated(); + Gson gson = new Gson(); + Logger.logD(TAG, "success" + gson.toJson(loginModel)); + sessionManager.setChwname(loginModel.getUser().getDisplay()); + sessionManager.setCreatorID(loginModel.getUser().getUuid()); + sessionManager.setSessionID(loginModel.getSessionId()); + sessionManager.setProviderID(loginModel.getUser().getPerson().getUuid()); + UrlModifiers urlModifiers = new UrlModifiers(); + String url = urlModifiers.loginUrlProvider(sessionManager.getServerUrl(), loginModel.getUser().getUuid()); + if (authencated) { + Observable loginProviderModelObservable = AppConstants.apiInterface.LOGIN_PROVIDER_MODEL_OBSERVABLE(url, "Basic " + encoded); + loginProviderModelObservable + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new DisposableObserver() { + @Override + public void onNext(LoginProviderModel loginProviderModel) { + if (loginProviderModel.getResults().size() != 0) { + for (int i = 0; i < loginProviderModel.getResults().size(); i++) { + Log.i(TAG, "doInBackground: " + loginProviderModel.getResults().get(i).getUuid()); + sessionManager.setProviderID(loginProviderModel.getResults().get(i).getUuid()); // success = true; - final Account account = new Account(mEmail, "io.intelehealth.openmrs"); - manager.addAccountExplicitly(account, mPassword, null); - offlineLogin.invalidateLoginCredentials(); - offlineLogin.setUpOfflineLogin(mEmail, mPassword); - Intent intent = new Intent(LoginActivity.this, HomeActivity.class); - intent.putExtra("login", true); + final Account account = new Account(mEmail, "io.intelehealth.openmrs"); + manager.addAccountExplicitly(account, mPassword, null); + offlineLogin.invalidateLoginCredentials(); + offlineLogin.setUpOfflineLogin(mEmail, mPassword); + Intent intent = new Intent(LoginActivity.this, HomeActivity.class); + intent.putExtra("login", true); // startJobDispatcherService(LoginActivity.this); - startActivity(intent); - finish(); - showProgress(false); + startActivity(intent); + finish(); + showProgress(false); - sessionManager.setReturningUser(true); + sessionManager.setReturningUser(true); - } } } + } - @Override - public void onError(Throwable e) { - Logger.logD(TAG, "handle provider error" + e.getMessage()); + @Override + public void onError(Throwable e) { + Logger.logD(TAG, "handle provider error" + e.getMessage()); // success = false; - showProgress(false); - } + showProgress(false); + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); - } + } + }); } + } - @Override - public void onError(Throwable e) { - Logger.logD(TAG, "Login Failure" + e.getMessage()); + @Override + public void onError(Throwable e) { + Logger.logD(TAG, "Login Failure" + e.getMessage()); // success = false; - showProgress(false); + showProgress(false); // DialogUtils dialogUtils=new DialogUtils(); // dialogUtils.showerrorDialog(LoginActivity.this,"Error Login",getString(R.string.error_incorrect_password),"ok"); - Toast.makeText(LoginActivity.this, getString(R.string.error_incorrect_password), Toast.LENGTH_SHORT).show(); - mPasswordView.setError(""); - mUsernameView.setError(""); - mPasswordView.setText(""); - mUsernameView.setText(""); - mPasswordView.requestFocus(); - } + Toast.makeText(LoginActivity.this, getString(R.string.error_incorrect_password), Toast.LENGTH_SHORT).show(); + mPasswordView.setError(""); + mUsernameView.setError(""); + mPasswordView.setText(""); + mUsernameView.setText(""); + mPasswordView.requestFocus(); + } - @Override - public void onComplete() { - Logger.logD(TAG, "completed"); - } - }); + @Override + public void onComplete() { + Logger.logD(TAG, "completed"); + } + }); // return true; diff --git a/app/src/main/java/io/intelehealth/client/activities/setupActivity/SetupActivity.java b/app/src/main/java/io/intelehealth/client/activities/setupActivity/SetupActivity.java index f733c1e5dd..16b41dc9b0 100644 --- a/app/src/main/java/io/intelehealth/client/activities/setupActivity/SetupActivity.java +++ b/app/src/main/java/io/intelehealth/client/activities/setupActivity/SetupActivity.java @@ -130,7 +130,7 @@ public void onClick(View v) { mAdminPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) { - if (id == R.id.login || id == EditorInfo.IME_NULL) { + if (id == R.id.admin_password || id == EditorInfo.IME_NULL) { attemptLogin(); return true; } @@ -182,7 +182,7 @@ public void run() { // user didn't typed for 1.5 seconds, do whatever you want if (!mUrlField.getText().toString().trim().isEmpty() && mUrlField.getText().toString().length() >= 12 ) { if (Patterns.WEB_URL.matcher(mUrlField.getText().toString()).matches()) { - String BASE_URL = "http://" + mUrlField.getText().toString() + ":8080/openmrs/ws/rest/v1/"; + String BASE_URL = "https://" + mUrlField.getText().toString() + "/openmrs/ws/rest/v1/"; if (URLUtil.isValidUrl(BASE_URL) && !isLocationFetched) getLocationFromServer(BASE_URL); else @@ -506,7 +506,7 @@ public void onNext(LoginProviderModel loginProviderModel) { sessionManager.setLocationDescription(location.getDescription()); sessionManager.setServerUrl(CLEAN_URL); sessionManager.setServerUrlRest(BASE_URL); - sessionManager.setServerUrlBase("http://" + CLEAN_URL + ":8080/openmrs"); + sessionManager.setServerUrlBase("https://" + CLEAN_URL + "/openmrs"); sessionManager.setBaseUrl(BASE_URL); sessionManager.setSetupComplete(true); @@ -515,7 +515,7 @@ public void onNext(LoginProviderModel loginProviderModel) { Parse.initialize(new Parse.Configuration.Builder(getApplicationContext()) .applicationId(AppConstants.IMAGE_APP_ID) - .server("http://" + CLEAN_URL + ":4040/parse/") + .server("https://" + CLEAN_URL + ":4040/parse/") .build() ); Log.i(TAG, "onPostExecute: Parse init"); diff --git a/app/src/main/java/io/intelehealth/client/app/AppConstants.java b/app/src/main/java/io/intelehealth/client/app/AppConstants.java index 41b8a033f7..e034d0cf81 100644 --- a/app/src/main/java/io/intelehealth/client/app/AppConstants.java +++ b/app/src/main/java/io/intelehealth/client/app/AppConstants.java @@ -8,7 +8,7 @@ import androidx.work.NetworkType; import androidx.work.PeriodicWorkRequest; -import com.snatik.storage.Storage; +//import com.snatik.storage.Storage; import java.io.File; import java.util.concurrent.TimeUnit; @@ -28,7 +28,7 @@ public class AppConstants { public static final int DATABASE_VERSION = 4; public static final String JSON_FOLDER = "Engines"; public static final String JSON_FOLDER_Update = "Engines_Update"; - public static final String MIND_MAP_SERVER_URL = "http://mindmaps.intelehealth.io/"; + public static final String MIND_MAP_SERVER_URL = "https://mindmaps.intelehealth.io/"; public static final String IMAGE_APP_ID = "app2"; public static final String dbfilepath = Environment.getExternalStorageDirectory() + File.separator + "InteleHealth_DB" + File.separator + "Intelehealth.db"; // directory: Intelehealth_DB , filename: Intelehealth.db public static String CONFIG_FILE_NAME = "config.json"; @@ -57,7 +57,7 @@ public class AppConstants { public static final String MINIMUM_RESPIRATORY = "10"; //functions constants - public static Storage storage = new Storage(IntelehealthApplication.getAppContext()); +// public static Storage storage = new Storage(IntelehealthApplication.getAppContext()); public static InteleHealthDatabaseHelper inteleHealthDatabaseHelper = new InteleHealthDatabaseHelper(IntelehealthApplication.getAppContext()); public static final String UNIQUE_WORK_NAME = "intelehealth_workmanager"; public static ApiInterface apiInterface = ApiClient.createService(ApiInterface.class); diff --git a/app/src/main/java/io/intelehealth/client/app/IntelehealthApplication.java b/app/src/main/java/io/intelehealth/client/app/IntelehealthApplication.java index aec19a0337..c9abf43cc3 100644 --- a/app/src/main/java/io/intelehealth/client/app/IntelehealthApplication.java +++ b/app/src/main/java/io/intelehealth/client/app/IntelehealthApplication.java @@ -78,7 +78,7 @@ public void onCreate() { Parse.initialize(new Parse.Configuration.Builder(this) .clientBuilder(builder) .applicationId(AppConstants.IMAGE_APP_ID) - .server("http://" + url + ":1337/parse/") + .server("https://" + url + ":1337/parse/") .build() ); Log.i(TAG, "onCreate: Parse init"); diff --git a/app/src/main/java/io/intelehealth/client/database/dao/EmergencyEncounterDAO.java b/app/src/main/java/io/intelehealth/client/database/dao/EmergencyEncounterDAO.java index f406f44392..9782f75c1f 100644 --- a/app/src/main/java/io/intelehealth/client/database/dao/EmergencyEncounterDAO.java +++ b/app/src/main/java/io/intelehealth/client/database/dao/EmergencyEncounterDAO.java @@ -96,7 +96,7 @@ public boolean removeEncounterEmergency(final String visitUuid, SQLiteDatabase d if (cursor.moveToFirst()) { while (!cursor.isAfterLast()) { String name = cursor.getString(cursor.getColumnIndex("uuid")); - String url = "http://" + session.getServerUrl() + ":8080/openmrs/ws/rest/v1/encounter/" + name; + String url = "https://" + session.getServerUrl() + "/openmrs/ws/rest/v1/encounter/" + name; Call patientUUIDResponsemodelCall = apiInterface.DELETE_ENCOUNTER(url, "Basic " + session.getEncoded()); StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); diff --git a/app/src/main/java/io/intelehealth/client/database/dao/PullDataDAO.java b/app/src/main/java/io/intelehealth/client/database/dao/PullDataDAO.java index 2eea1b4bb9..08e5aac1de 100644 --- a/app/src/main/java/io/intelehealth/client/database/dao/PullDataDAO.java +++ b/app/src/main/java/io/intelehealth/client/database/dao/PullDataDAO.java @@ -35,7 +35,7 @@ public boolean pullData(final Context context) { sessionManager = new SessionManager(context); String encoded = sessionManager.getEncoded(); // 1eaa9a54-0fcb-4d5c-9ec7-501d2e5bcf2a - String url = "http://" + sessionManager.getServerUrl() + ":8080/EMR-Middleware/webapi/pull/pulldata/" + sessionManager.getLocationUuid() + "/" + sessionManager.getPullExcutedTime(); + String url = "https://" + sessionManager.getServerUrl() + "/EMR-Middleware/webapi/pull/pulldata/" + sessionManager.getLocationUuid() + "/" + sessionManager.getPullExcutedTime(); Call middleWarePullResponseCall = AppConstants.apiInterface.RESPONSE_DTO_CALL(url, "Basic " + encoded); Logger.logD("Start pull request", "Started"); middleWarePullResponseCall.enqueue(new Callback() { @@ -129,7 +129,7 @@ public boolean pushDataApi() { String encoded = sessionManager.getEncoded(); Gson gson = new Gson(); Logger.logD(TAG, "push request model" + gson.toJson(pushRequestApiCall)); - String url = "http://" + sessionManager.getServerUrl() + ":8080/EMR-Middleware/webapi/push/pushdata"; + String url = "https://" + sessionManager.getServerUrl() + "/EMR-Middleware/webapi/push/pushdata"; // push only happen if any one data exists. if (!pushRequestApiCall.getVisits().isEmpty() || !pushRequestApiCall.getPersons().isEmpty() || !pushRequestApiCall.getPatients().isEmpty() || !pushRequestApiCall.getEncounters().isEmpty()) { Single pushResponseApiCallObservable = AppConstants.apiInterface.PUSH_RESPONSE_API_CALL_OBSERVABLE(url, "Basic " + encoded, pushRequestApiCall); diff --git a/app/src/main/java/io/intelehealth/client/networkApiCalls/ApiClient.java b/app/src/main/java/io/intelehealth/client/networkApiCalls/ApiClient.java index c649fea482..146d67c91f 100644 --- a/app/src/main/java/io/intelehealth/client/networkApiCalls/ApiClient.java +++ b/app/src/main/java/io/intelehealth/client/networkApiCalls/ApiClient.java @@ -15,7 +15,7 @@ public class ApiClient { // private static OkHttpClient.Builder client = new OkHttpClient.Builder(); - private static String apiBaseUrl = "http://openmrs.intelehealth.io"; + private static String apiBaseUrl = "https://openmrs.intelehealth.io"; private static Retrofit retrofit; SessionManager sessionManager = new SessionManager(IntelehealthApplication.getAppContext()); private static Retrofit.Builder builder = diff --git a/app/src/main/java/io/intelehealth/client/services/DownloadProtocolsTask.java b/app/src/main/java/io/intelehealth/client/services/DownloadProtocolsTask.java index 41f52602ae..752fc79296 100644 --- a/app/src/main/java/io/intelehealth/client/services/DownloadProtocolsTask.java +++ b/app/src/main/java/io/intelehealth/client/services/DownloadProtocolsTask.java @@ -246,7 +246,7 @@ private List downloadMindMapList(String licensekey) { try { publishProgress("progress", "Downloading Mindmap List"); //Download List of Protocols Available - String servStr = "http://" + sessionManager.getMindMapServerUrl() + ":4040/parse/functions/downloadMindMap"; + String servStr = "https://" + sessionManager.getMindMapServerUrl() + ":4040/parse/functions/downloadMindMap"; URL url = new URL(servStr); Log.i("GetMMList", servStr); byte[] mmListRequestBytes = mmListRequest.getBytes(StandardCharsets.UTF_8); @@ -322,7 +322,7 @@ private String downloadMindMap(String licensekey, Mindmap mindmap) { try { publishProgress("progress", "Downloading Mindmap " + mindmap.name); //Download List of Protocols Available - String servStr = "http://" + sessionManager.getMindMapServerUrl() + ":4040/parse/functions/downloadMindMap"; + String servStr = "https://" + sessionManager.getMindMapServerUrl() + ":4040/parse/functions/downloadMindMap"; URL url = new URL(servStr); Log.i("GetMM", servStr); byte[] mmListRequestBytes = mmListRequest.getBytes(StandardCharsets.UTF_8); diff --git a/app/src/main/java/io/intelehealth/client/utilities/SessionManager.java b/app/src/main/java/io/intelehealth/client/utilities/SessionManager.java index 347acd2f8d..acfa9953d0 100644 --- a/app/src/main/java/io/intelehealth/client/utilities/SessionManager.java +++ b/app/src/main/java/io/intelehealth/client/utilities/SessionManager.java @@ -64,7 +64,7 @@ public void setVisitId(String token) { } public String getBaseUrl() { - return pref.getString(BASE_URL, "http://openmrs.intelehealth.io"); + return pref.getString(BASE_URL, "https://openmrs.intelehealth.io"); } public void setBaseUrl(String baseUrl) { @@ -326,7 +326,7 @@ public void setPushSyncFinished(Boolean syncFinished) { } public String getMindMapServerUrl() { - return pref.getString(MIND_MAP_SERVER_URL, "http://mindmaps.intelehealth.io:4040"); + return pref.getString(MIND_MAP_SERVER_URL, "https://mindmaps.intelehealth.io:4040"); } //getting the sync value and time and saving in the sharedpref public void setMindMapServerUrl(String mindMapServerUrl) { diff --git a/app/src/main/java/io/intelehealth/client/utilities/UrlModifiers.java b/app/src/main/java/io/intelehealth/client/utilities/UrlModifiers.java index 00c75daea3..381852eaa2 100644 --- a/app/src/main/java/io/intelehealth/client/utilities/UrlModifiers.java +++ b/app/src/main/java/io/intelehealth/client/utilities/UrlModifiers.java @@ -9,7 +9,7 @@ public String loginUrl(String CLEAN_URL) { String urlModifier = "session"; - String BASE_URL = "http://" + CLEAN_URL + ":8080/openmrs/ws/rest/v1/"; + String BASE_URL = "https://" + CLEAN_URL + "/openmrs/ws/rest/v1/"; return BASE_URL + urlModifier; } @@ -17,7 +17,7 @@ public String loginUrlProvider(String CLEAN_URL, String USER_UUID) { String provider = "provider?user=" + USER_UUID; - String BASE_URL = "http://" + CLEAN_URL + ":8080/openmrs/ws/rest/v1/"; + String BASE_URL = "https://" + CLEAN_URL + "/openmrs/ws/rest/v1/"; return BASE_URL + provider; } @@ -25,7 +25,7 @@ public String patientProfileImageUrl(String patientUuid) { sessionManager = new SessionManager(IntelehealthApplication.getAppContext()); String provider = "personimage/" + patientUuid; - String BASE_URL = "http://" + sessionManager.getServerUrl() + ":8080/openmrs/ws/rest/v1/"; + String BASE_URL = "https://" + sessionManager.getServerUrl() + "/openmrs/ws/rest/v1/"; return BASE_URL + provider; } @@ -33,7 +33,7 @@ public String setPatientProfileImageUrl() { sessionManager = new SessionManager(IntelehealthApplication.getAppContext()); String provider = "personimage"; - String BASE_URL = "http://" + sessionManager.getServerUrl() + ":8080/openmrs/ws/rest/v1/"; + String BASE_URL = "https://" + sessionManager.getServerUrl() + "/openmrs/ws/rest/v1/"; return BASE_URL + provider; } @@ -42,7 +42,7 @@ public String obsImageUrl(String obsUuid) { sessionManager = new SessionManager(IntelehealthApplication.getAppContext()); String provider = "obs/" + obsUuid + "/value"; - String BASE_URL = "http://" + sessionManager.getServerUrl() + ":8080/openmrs/ws/rest/v1/"; + String BASE_URL = "https://" + sessionManager.getServerUrl() + "/openmrs/ws/rest/v1/"; return BASE_URL + provider; } @@ -50,7 +50,7 @@ public String obsImageDeleteUrl(String obsUuid) { sessionManager = new SessionManager(IntelehealthApplication.getAppContext()); String provider = "obs/" + obsUuid; - String BASE_URL = "http://" + sessionManager.getServerUrl() + ":8080/openmrs/ws/rest/v1/"; + String BASE_URL = "https://" + sessionManager.getServerUrl() + "/openmrs/ws/rest/v1/"; return BASE_URL + provider; } @@ -58,7 +58,7 @@ public String setObsImageUrl() { sessionManager = new SessionManager(IntelehealthApplication.getAppContext()); String provider = "obs"; - String BASE_URL = "http://" + sessionManager.getServerUrl() + ":8080/openmrs/ws/rest/v1/"; + String BASE_URL = "https://" + sessionManager.getServerUrl() + "/openmrs/ws/rest/v1/"; return BASE_URL + provider; } diff --git a/app/src/main/java/io/intelehealth/client/widget/PasswordEditText.java b/app/src/main/java/io/intelehealth/client/widget/PasswordEditText.java new file mode 100644 index 0000000000..080c9a203f --- /dev/null +++ b/app/src/main/java/io/intelehealth/client/widget/PasswordEditText.java @@ -0,0 +1,237 @@ +package io.intelehealth.client.widget; + +import android.content.Context; +import android.content.res.ColorStateList; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.ColorFilter; +import android.graphics.Paint; +import android.graphics.Typeface; +import android.graphics.drawable.Drawable; +import android.os.Parcel; +import android.os.Parcelable; +import android.support.v4.content.ContextCompat; +import android.text.InputType; +import android.text.TextUtils; +import android.util.AttributeSet; +import android.view.MotionEvent; + +import com.rengwuxian.materialedittext.MaterialEditText; +import io.intelehealth.client.R; + + +public class PasswordEditText extends MaterialEditText { + private final int EXTRA_TOUCH_AREA = 50; + private Drawable mHideDrawable; + private Drawable mShowDrawable; + private boolean mPasswordVisible = false; + private boolean touchDown; + private boolean mShowAsText; + private String mHideTextString; + private String mShowTextString; + Context context; + + + public PasswordEditText(Context context) { + super(context); + } + + public PasswordEditText(Context context, AttributeSet attrs) { + super(context, attrs); + this.context = context; + init(context, attrs, 0, 0); +// this.setTypeface(Typeface.createFromAsset(context.getAssets(), "fonts/Lato-Regular.ttf")); + } + + + public PasswordEditText(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + init(context, attrs, 0, 0); + } + +// @TargetApi(21) +// public PasswordEditText(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { +// super(context, attrs, defStyleAttr, defStyleRes); +// init(context, attrs, defStyleAttr, defStyleRes); +// } + + private void init(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.password_edit_text, defStyleAttr, defStyleRes); + + int hideDrawableResId = R.drawable.ic_eye_off_white_24dp; + int showDrawableResId = R.drawable.ic_eye_white_24dp; + + try { + mPasswordVisible = a.getBoolean(R.styleable.password_edit_text_password_visible, false); + hideDrawableResId = a.getResourceId(R.styleable.password_edit_text_hide_drawable, hideDrawableResId); + showDrawableResId = a.getResourceId(R.styleable.password_edit_text_show_drawable, showDrawableResId); + mShowAsText = a.getBoolean(R.styleable.password_edit_text_show_as_text, false); + if (mShowAsText) { + mShowTextString = a.getString(R.styleable.password_edit_text_show_text); + mHideTextString = a.getString(R.styleable.password_edit_text_hide_text); + } + } finally { + a.recycle(); + mHideDrawable = ContextCompat.getDrawable(getContext(), hideDrawableResId); + mShowDrawable = ContextCompat.getDrawable(getContext(), showDrawableResId); + if (mShowAsText) { + mHideTextString = TextUtils.isEmpty(mHideTextString) ? getContext().getString(R.string.hide_text) : mHideTextString; + mShowTextString = TextUtils.isEmpty(mShowTextString) ? getContext().getString(R.string.show_text) : mShowTextString; + } + } + + mHideDrawable.setBounds(0, 0, mHideDrawable.getIntrinsicWidth(), mHideDrawable.getIntrinsicHeight()); + mShowDrawable.setBounds(0, 0, mShowDrawable.getIntrinsicWidth(), mShowDrawable.getIntrinsicHeight()); + if (mPasswordVisible) { + showPassword(); + } else { + hidePassword(); + } + } + + + private void togglePasswordView() { + if (mPasswordVisible) { + hidePassword(); + } else { + showPassword(); + } + } + + private void showPassword() { + if (mShowAsText) { + setCompoundDrawables(null, null, new TextDrawable(mHideTextString), null); + } else { + setCompoundDrawables(null, null, mHideDrawable, null); + } + setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); +// setTypeface(Typeface.createFromAsset(context.getAssets(), "fonts/Lato-Regular.ttf")); + setSelection(getText().length()); + mPasswordVisible = true; + } + + private void hidePassword() { + if (mShowAsText) { + setCompoundDrawables(null, null, new TextDrawable(mShowTextString), null); + } else { + setCompoundDrawables(null, null, mShowDrawable, null); + } + setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); +// setTypeface(Typeface.createFromAsset(context.getAssets(), "fonts/Lato-Regular.ttf")); + setSelection(getText().length()); + mPasswordVisible = false; + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + final int right = getRight(); + final int drawableSize = getCompoundPaddingRight(); + final int x = (int) event.getX(); + switch (event.getAction()) { + case MotionEvent.ACTION_DOWN: + if (x + EXTRA_TOUCH_AREA >= right - drawableSize && x <= right + EXTRA_TOUCH_AREA) { + touchDown = true; + return true; + } + break; + case MotionEvent.ACTION_UP: + if (x + EXTRA_TOUCH_AREA >= right - drawableSize && x <= right + EXTRA_TOUCH_AREA && touchDown) { + touchDown = false; + togglePasswordView(); + return true; + } + touchDown = false; + break; + + } + return super.onTouchEvent(event); + } + + @Override + public Parcelable onSaveInstanceState() { + Parcelable saveState = super.onSaveInstanceState(); + return new SavedState(saveState, mPasswordVisible); + } + + @Override + public void onRestoreInstanceState(Parcelable state) { + + SavedState savedState = (SavedState) state; + + mPasswordVisible = savedState.isPasswordVisible(); + if (mPasswordVisible) { + showPassword(); + } else { + hidePassword(); + } + super.onRestoreInstanceState(savedState.getSuperState()); + } + + private static class SavedState extends BaseSavedState { + + private boolean isPasswordVisible = false; + + public SavedState(Parcel source) { + super(source); + isPasswordVisible = source.readByte() != 0; + } + + public SavedState(Parcelable superState, boolean passwordVisible) { + super(superState); + isPasswordVisible = passwordVisible; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + super.writeToParcel(out, flags); + out.writeByte((byte) (isPasswordVisible == true ? 1 : 0)); + } + + public static final Creator CREATOR = new Creator() { + + public SavedState createFromParcel(Parcel in) { + return new SavedState(in); + } + + public SavedState[] newArray(int size) { + return new SavedState[size]; + } + + }; + + public boolean isPasswordVisible() { + return isPasswordVisible; + } + } + + private class TextDrawable extends Drawable { + private String mText = ""; + private ColorStateList mPrefixTextColor; + + public TextDrawable(String text) { + mText = text; + mPrefixTextColor = getTextColors(); + setBounds(0, 0, (int) getPaint().measureText(mText), (int) getTextSize()); + } + + @Override + public void draw(Canvas canvas) { + Paint paint = getPaint(); + + paint.setColor(mPrefixTextColor.getColorForState(getDrawableState(), 0)); + int lineBaseline = getLineBounds(0, null); + canvas.drawText(mText, 0, canvas.getClipBounds().top + lineBaseline, paint); + } + + @Override + public void setAlpha(int alpha) {/* Not supported */} + + @Override + public void setColorFilter(ColorFilter colorFilter) {/* Not supported */} + + @Override + public int getOpacity() { + return 1; + } + } +} diff --git a/app/src/main/res/drawable-hdpi/ic_avatar.png b/app/src/main/res/drawable-hdpi/ic_avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..23ebd397745a3e5f95b253136b9407b3c6b37d2e GIT binary patch literal 1000 zcmV>P) zOGuPq6oz%wOlQ2#n30!7MT{FSMdrpX5UnCB7wt`~ps0m{Q6UkLu52R(Q6M4)fkCUF zpcX-9NkTMb8sVj}CMkkeEwty2V>oKR|H$va%Y2vjyyv@}^L>9(Qi8v^xw#-{18>1E z@DmJ!c955}R=;pKoD+#e&d$!xega=&vDg%N10pKZ7E>Rb({Qsrbsh?Z)*;-0134Ns zC&jeq3zSP}Yo_m`IO592%h?w*%Q3{q5#LEYV;N2+eKl|<#FdR#vtN(!Nn7^I2>Trd z8h~?ETx=S#P4{8|S%}_7^fRJW)O`+IADn7&vAIb-;KcxP5qk!r%y5H??J5)(Je92% z0|+8E3MN!`$ybED(*gBr0Amt$Ie-w{X)xl|0P+xfEm4-Yz{M66*Z^M2){6n;AohTR z73F|!rtZW|hOTdy*qLTkv<>~8Am%W#yi_K5>`&`roDvI=R4*V|q2p7IenP?8csWccwzjquXLaC_twz+KWq$|`!YT3O4p_MS z%xEJsJC1`sP==Er^&-mE0_9D#uWUR}qsaf+Cgocchf4j*Di5q-iezXGa}O8Qci z5A6S6S$*P&i_K#@D}@S2mJg>l-wlW}7`_0F)QffcwY;m? z#uSU360}a}ZjiQoEJ?pC<77)}iiT_E<6PWZ!J=Th-DWfP z2yLfr2Znm)1uQCjF0-h(0c@4BE6}>4M=ILizz5oPE!k$sN~Ox>onYKjul8#g+_Jn- zW!JENLB075Du?V^RwiuFcY$TnDZ4$#rA>d?f3vB@tY4p1`WnKZU(a#7@#a%<)E=E5 zEzJ&DS#8nz6l{B~ywZ=>Df^c6yS@_^eUev!3!oPafJyKj{5Jfsw&$P+w1NsZ+J68K W5FL`fX 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 Q$p8QV07*qoM6N<$f?FeqU;qFB literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_eye_white_24dp.png b/app/src/main/res/drawable-xhdpi/ic_eye_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..0dc65da8f648eb513a3dda564d3fa5f323846f9d GIT binary patch literal 1147 zcmV->1cdvEP)C^JBZU z4bBJN!@PN)@AG`$B=i0NA|fIpA|eJD+6)m*)1Eg?b2Ju&iP18IB;NX)eybl*uRXtiP79TvefqXvy77;B1cr8HUhXB3-uxQ)%H6r>00GRnz zMNxJGm;i7Xz?J}7zccehxm^Bv!v^yC{6PSVM3nZ+#>{6`Rn=x^XMgn?S11(TFio>W zL>~mutOJ-Rm&+GJ8_4JLBSiE)fTT|zi-@M@=H_I8S?w@2H6@t22>-WNlbH{c%jKnh zANCE_G;J8b1pqJj6+%RXu*Cy_VHmYcCbI%y+-K+z5gi^I8@pf_#=Uj<-5t4H?m1Oe zuL0N|ppHc;WzSDR*Yz#+di@h3`WV2l(|wbfze=amU+TL4uzS1^;w=9DZ}_onn&$3G zrLxl9sjRa*G&B>i_*DSHWqwsF>q@1>wh~^uO#!@bq+vd^{j+P(Wo!WZn zF(8E4&&-nn!~o!&l=8Q=hio<*kHuo=0qpXK*%gb$&S$gP_*#dfaV|(gW}Xy6?DzTx zBm%At%-oYSkw_dTqMd$mM6@%JNF4Xl@(OoqTyH=K@g9IZ0fk`O_K&WvV?krxWBX`% zvB#;k*8qUeLWn?B)jO`P9U;PZ_-OgjsZ|LX_{`C5;PWtnrfIr2bhko;-}2G&qf=|g zfRyrE09OJ#SCn^LU8h47aN0-9iz`m8y#^cvf^K7pj&wh_TCG#ee8Vq}nQydOty5lF zUg2=9Jv|1bl$V@ECvQt~HseU6h zO&hjt`#S(H1(=nojcn$C&W?00z|cPxMR~VWD&2H{(04a#7{=vaW+IgrU@ zRt&?aZJ_uf{9olwW`18vdA08ZdPNTOfu_sE;2tU080bTN_tm z!8A<<@Fx7v%R#wMM3rPR`O(bG%+)Y~|G%rnemu>~-H3>Yh=_=R<`H0X)m=Klibwze N002ovPDHLkV1fk+6xRR% literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_eye_off_white_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_eye_off_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..9aa2d64884e70f1f6712e626864d82d5c66438a3 GIT binary patch literal 2288 zcmVLZr$g?!C}okDG)BiDC_3~H)}X?I zz4xA5G3r^CkoFudbl_sdWf6aXOB>?m^bZZpl${rcbBT}vZUfqGQ}++jhF*U3p7-$& zF7eWybMLw5oVFA0_pj!C-XG8V>HFh(-}hXgs;a80s;a80s;a80TtwwEbaZsoHa9o# zC!#~9Y4*>w!_zIbl(D0uqqeE3=>QR}2k>wrkvMJJ_Nke6dOGC^s0hy5qP({qB*n{6 zm{w~iB-b+Y0bSSE;x%gnQhs2%{M zl;et`TmtZKW*$~mb*Q_$`#&=QsN^E8>-t(|KHvfg0LF=EgI`FgRO(&;tBB}90C50! zRp{$5fWHyZF(Ue7PfyPY06e3BqJX69`uCW56M(xTb)4v50Qwxq`BgTX{p*YY3JWQd z$t;yp9tQBCsp{0Ngo+kO1JHMD#>ML&LL%VdSS3 zP*_OGWO9k3C`SOynPNx)aE6E;H%;?T(+VgoBwg1(&df&u%$){E3}AmgpHJ@Iz5Bwn z0SXH#nM^KL6y-30k4yt302n5s^`>e5B}ic z`8gt5%*?UI#>P5kp2N&>0BL4^8GsW4P%ASJq|@nd1u0zV2%>a4{S<($KJu0vNrqu4 zhG9rQjiyqmI{~DKXbXVZAzr>(;GP7c5xtEP#y_I8;$ESx%Wurqywr ztjiIo68(H|aBx#!U!Sj0srtzTfZE&J_XBveLT4g9;M%r5B82GIH0>IIHUwKk?`v*u zo-c%WAu>Sebh;NnN5FnXehVOkI2w<~≦d#gK^TeofQrgb;^A1JZSUGk_;U_Gv00 zy{>86IDm%&R*^^~67Siz{c5R9CFy4}nMC23Fe{2qq0E|;N~IPO(Te~SB0377uS~E< z>2$gez#{?uxkf~qX_}spJOORpy0xjkzWxL%KXpd|>7}A}{|unRvaC1V@^^N2&R13S z4FL54{W*K(%9T&<-Me?x&FC2i)z#JQ2?K|S1^|q^m`cV;J9q9pud3=w0E303l>lBz zCX=6a%fD;auD1c~3F;?+kItSwd#9Jt6_Bp$ZA4Vbc0N(kah#1rv>^zj?(XhERaM)H zAl;!T%JW@aT_1DHUt3$d3n79@X5N%er&ss_WEe&bGyfO?k0AvOWV6{J(=_|TK$23f zEP~YHIL^=9^6uEN<2`0R7Q$Zw@U&qVlXy%@7#kbg2w+Kw#y~`Wxbb%wNZD+5r~v7F zA!((q>#n<&qA0%&<1>Jzxm@mRB>@?RF$=&CLN){`VCp7jGON1ZvvFd<<IYT3TFRAc$x|iDD%o_4M=%D~i&_%vas)b#-+kQTR?o-}M9(p}bD% z<=QI?NlN)eH(M^3tBb;MX1?jFcH#)y9YrHouU>8TFum)ecu7cwxMz~``TU2Y@STWy zJORaGu|xRZjuBW=%0(Wgmwi@I@e6KEP0hRr_?)yX>-V0348zD1(T~Em!pzIv(uwFd z6;x9ZBq?RWPrfpKo0xE!Hfc?0XlVE~fRkYwl2U%zE!{ND!?=F7iX0LVwTI;M+R)I@ z!HJ1(k+cNx9fWw+C8Fiqw{LfS-ceQcF#s2%gj9%K!b~v-z+-N=jIO(iWm!jw=$Q}= zs^jD1oo;RD>n|3U0lWd=gD&lsyqOe2T+lS_cL3G^X!7A>&T*VCWV6{} zuMB>^?%2%CKM4TnhQ4oE){aUGg?XGzr_+l7yoA#05(8LoSyo?(Jmp7*ZQHMEnpO{w zGmsChipS%pg%Gb-QpmRLQ;9_4G=PUOH6!Us%d(y>=ZCMUBZN2-kH=ey=>7nJh=?B1 zG%YWL@Ea&jHKb=O%S!t3!S~uSZ{EBYTUuIL0o)e^5`c%|@%TL}R;+l%wr$@B%cvm{ zQLklLTi`Q{@eSzIsZ%V3ctO*&MqK}du5wC5OPG0cJRWb3$K!t&LX7z-w|x2X%K#oE zqE?SS_=VJKSyop?J_qTjuIt}s=3cljpnl~r^D!cNo|$a`XJfJ0MF7g!*jNiQFD9Z- z0cZ!X0_FdiB^T~(+qSjz_V!+^)XBj2&bqFDhMAuO&>FOkDNv-}0sz6{8vuZ9+wUw} zw(J**qRavC352`kkFr0JzTigEDP7k;&&+!OES^a^MT%@B1s*}gvTgg^>eZ`%n$PFo z1@HiX56m#2$VO7+)50)}S-D*9tIV7Puym#f6%=|TP3gLkOeR0As_NGPtYhX#u0)IU z4uI#Rln04u5fS|o?mw*v1!=k#R?1{D_cHV9!foRNsC@T(8^Cd99w4HD#>U1I#h>s+ z`Ll_c05nNmU0ruLj&oNb_?s)Gj46sz3joZV129HJ7o?QuVzJm;hGFE&)j1WA-Va-I zq>36+B)i!ANny@zw*?>|T1Zp%vO44P@xjCzKlR+QfBSb=;CutXLDL z8#DKhj*f2Fw{PFLpYpdnAmAoQ&gkgqqkiF3RaI40RaMphxBd$X=|z$J3)xZt0000< KMNUMnLSTZGPd{Y< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_eye_white_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_eye_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..fea94265e2ad26efb58e962da5a8eb3d0face641 GIT binary patch literal 1757 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 I9DL*c1^$Ahi~s-t diff --git a/app/src/main/res/drawable/block.png b/app/src/main/res/drawable/block.png deleted file mode 100644 index 2fe2343eee6026a0db179755460dcefd4d299af0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1302 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 R)m{Jq002ovPDHLkV1oZ7jFJEV literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 72496ce1ca..a9381a539f 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,168 +1,132 @@ - - + + + + - - + + + + - - + android:layout_height="wrap_content" + android:hint="@string/prompt_email" + android:imeOptions="actionNext" + android:layout_marginStart="10dp" + android:inputType="textEmailAddress" + android:maxLength="100" + android:textColor="@color/white" + android:textSize="16sp" + app:met_baseColor="@color/white" + app:met_floatingLabel="highlight" + app:met_floatingLabelTextColor="@color/white" + app:met_hideUnderline="false" + app:met_iconPadding="0dp" + app:met_primaryColor="@color/white" + app:met_singleLineEllipsis="false" + app:met_textColorHint="@color/white" /> + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -