add project adins

This commit is contained in:
Alfrid Sanjaya Leo Putra 2024-07-25 14:44:22 +07:00
commit f8f85d679d
5299 changed files with 625430 additions and 0 deletions

View file

@ -0,0 +1,183 @@
package com.adins.mss.base.depositreport;
import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.widget.ImageView;
import android.widget.TextView;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.R;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.errorhandler.ErrorMessageHandler;
import com.adins.mss.base.errorhandler.IShowError;
import com.adins.mss.base.util.GsonHelper;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.TaskD;
import com.adins.mss.foundation.db.dataaccess.TaskDDataAccess;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.foundation.http.HttpConnectionResult;
import com.adins.mss.foundation.http.HttpCryptedConnection;
import com.adins.mss.foundation.image.JsonResponseImage;
import com.adins.mss.foundation.image.Utils;
import com.adins.mss.foundation.questiongenerator.QuestionBean;
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.HttpMetric;
import org.apache.http.NameValuePair;
import java.lang.ref.WeakReference;
import java.util.List;
/**
* Created by angga.permadi on 8/30/2016.
*/
public class GetImageTask extends AsyncTask<Void, Void, byte[]> implements IShowError {
static byte[] imagebyte = null;
List<NameValuePair> params;
GetImageData getImageData;
private ProgressDialog progressDialog;
private String errMessage = null;
private WeakReference<Activity> activity;
private ImageView imageView;
private TextView textView;
private String taskh;
private String questionId;
private QuestionBean bean;
private ErrorMessageHandler errorMessageHandler;
public GetImageTask(Activity activity, List<NameValuePair> params, ImageView imageView, TextView textView, QuestionBean bean, GetImageData listener) {
this.activity = new WeakReference<>(activity);
this.params = params;
this.imageView = imageView;
this.textView = textView;
this.bean = bean;
getImageData = listener;
errorMessageHandler = new ErrorMessageHandler(this);
}
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(activity.get(),
"", activity.get().getString(R.string.progressWait), true);
}
@Override
protected byte[] doInBackground(Void... arg0) {
byte[] imageResult = null;
JsonRequestImage request = new JsonRequestImage();
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
request.setUuid_task_h(params.get(0).getValue());
taskh = params.get(0).getValue();
request.setQuestion_id(params.get(1).getValue());
questionId = params.get(1).getValue();
String json = GsonHelper.toJson(request);
String url = GlobalData.getSharedGlobalData().getURL_GET_IMAGE();
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(activity.get(), encrypt, decrypt);
HttpConnectionResult serverResult = null;
HttpMetric networkMetric =
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
Utility.metricStart(networkMetric, json);
try {
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
Utility.metricStop(networkMetric, serverResult);
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
}
if(serverResult == null){
errMessage = activity.get().getString(R.string.request_error);
return new byte[0];
}
String result = serverResult.getResult();
JsonResponseImage resultServer = null;
try {
resultServer = GsonHelper.fromJson(result, JsonResponseImage.class);
if (resultServer.getStatus().getCode() == 0) {
List<TaskD> taskDs = resultServer.getImg();
TaskD d = taskDs.get(0);
imageResult = d.getImage();
} else {
errMessage = resultServer.getStatus().getMessage();
}
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
errMessage = activity.get().getString(R.string.request_error);
}
return imageResult;
}
@Override
protected void onPostExecute(byte[] result) {
if (progressDialog.isShowing()) {
try {
progressDialog.dismiss();
} catch (Exception e) {
FireCrash.log(e);
}
}
if (errMessage != null) {
errorMessageHandler.processError("ERROR",errMessage,ErrorMessageHandler.DIALOG_TYPE);
} else {
if (null == result) {
errorMessageHandler.processError("INFO"
,activity.get().getString(R.string.no_image)
,ErrorMessageHandler.DIALOG_TYPE);
} else {
try {
setResultImg(result);
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
}
}
}
}
public void setResultImg(byte[] resultImg) throws Exception {
try {
Bitmap bm = Utils.byteToBitmap(resultImg);
int[] res = Tool.getThumbnailResolution(bm.getWidth(), bm.getHeight());
Bitmap thumbnail = Bitmap.createScaledBitmap(bm, res[0], res[1], true);
imageView.setImageBitmap(thumbnail);
TaskD task = TaskDDataAccess.getAllByUUIDTaskHandQuestionId(activity.get(), taskh, questionId);
task.setImage(resultImg);
task.setText_answer(" " + bm.getWidth() + " x " + bm.getHeight() + ". Size " + resultImg.length + " Bytes");
bean.setIntTextAnswer(" " + bm.getWidth() + " x " + bm.getHeight() + ". Size " + resultImg.length + " Bytes");
bean.setImgAnswer(resultImg);
TaskDDataAccess.addOrReplace(activity.get(), task);
textView.setText(" " + bm.getWidth() + " x " + bm.getHeight() + ". Size " + resultImg.length + " Bytes");
} catch (Exception e) {
FireCrash.log(e);
throw e;
}
}
@Override
public void showError(String errorSubject, String errorMsg, int notifType) {
if(notifType == ErrorMessageHandler.DIALOG_TYPE){
NiftyDialogBuilder dialogBuilder = NiftyDialogBuilder.getInstance(activity.get());
dialogBuilder.withTitle(errorSubject)
.withMessage(errorMsg)
.show();
}
}
public interface GetImageData {
void getImageData(boolean data);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/text_margin"
android:textAppearance="?attr/textAppearanceListItem" />
<TextView
android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/text_margin"
android:textAppearance="?attr/textAppearanceListItem" />
</LinearLayout>

View file

@ -0,0 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bgColor">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:background="@drawable/header"
app:titleTextAppearance="?android:attr/textAppearanceSmall"
android:titleTextColor="@color/fontColorWhite"
app:popupTheme="@style/ThemeOverlay.AppCompat.ActionBar"
app:layout_collapseMode="pin"
android:fitsSystemWindows="true" />
<androidx.cardview.widget.CardView
android:id="@+id/detailContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
app:cardCornerRadius="10dp"
app:contentPadding="10dp"
app:cardElevation="@dimen/card_shadow"
android:layout_margin="@dimen/card_margin"
app:cardBackgroundColor="@color/fontColorWhite">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<HorizontalScrollView
android:id="@+id/horizontalScrollView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true">
<TableLayout android:layout_width="match_parent"
android:layout_height="fill_parent"
android:stretchColumns="4"
android:id="@+id/tableCollectionDetail">
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:text="@string/label_no"
android:textAppearance="?android:attr/textAppearanceSmall"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:gravity="center_horizontal"/>
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/timelineLine" />
<TextView
android:text="@string/label_field"
android:minWidth="120dp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:gravity="center_horizontal"/>
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/timelineLine" />
<TextView
android:text="@string/label_value"
android:textAppearance="?android:attr/textAppearanceSmall"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:gravity="center_horizontal"/>
</TableRow>
<TableRow>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/timelineLine"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/timelineLine"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/timelineLine"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/timelineLine"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/timelineLine"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="5dp">
<View
android:layout_width="match_parent"
android:layout_height="5dp" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/timelineLine" />
<View
android:layout_width="match_parent"
android:layout_height="5dp" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/timelineLine" />
<View
android:layout_width="match_parent"
android:layout_height="5dp" />
</TableRow>
</TableLayout>
</HorizontalScrollView>
</ScrollView>
</androidx.cardview.widget.CardView>
</LinearLayout>

View file

@ -0,0 +1,182 @@
<resources>
<string name="app_name">LeadIn</string>
<string name="appVersion">v2.1.0.1</string>
<string name="history_payment">History Payment</string>
<string name="installment_schedule">Installment Schedule</string>
<!-- Left Menu -->
<string name="drawer_open">Open drawer</string>
<string name="drawer_close">close_drawer</string>
<!-- CHECK ORDER -->
<string name="btnLookupCMO">Lookup CMO</string>
<string name="btnLookupCMOMH">Lookup CMO / MH</string>
<string name="lblSearchBy">Search by</string>
<string name="lblStartDate">Start Date</string>
<string name="lblEndDate">End Date</string>
<string name="lblNomorOrder">Order Number</string>
<string name="btnSearchOrder">Search</string>
<string name="menu">Main Menu</string>
<string name="cekOrder">Check Order</string>
<string name="btnOpen">Open</string>
<string name="lblSearchByStatus">Status</string>
<string name="btnOk">OK</string>
<string name="cancel_order">Cancel Order</string>
<string name="submit_all_task">Submit All Task</string>
<string name="submit_task_collection">Submit Task Collection</string>
<string name="lblAccountName">Account Name :</string>
<string name="lblProduct">Product :</string>
<string name="lblStatus">Status :</string>
<string name="allStatus">All Status</string>
<string-array name="dropdownAccountStatus">
<item>All Status</item>
<item>Lead</item>
<item>Bid</item>
<item>Qualified</item>
<item>Completed</item>
<item>Deleted</item>
</string-array>
<string-array name="cbSearchBy">
<item>Date</item>
<item>Order Number</item>
<item>Customer Name</item>
</string-array>
<string-array name="cbSearchByStatus">
<item>ALL</item>
<item>On Survey</item>
<item>On CA</item>
</string-array>
<string-array name="cbUpdateOrder">
<item>Open Order</item>
<item>Cancel Order</item>
</string-array>
<!-- Main Menu -->
<string name="title_mn_tasklist">Order Progress</string>
<string name="title_mn_reportsummary">Report Summary</string>
<string name="title_mn_depositreport">Deposit Report</string>
<string name="title_mn_newtask">New Order</string>
<string name="title_mn_surveyperformance">Survey Performance</string>
<string name="title_mn_surveyverification">Survey Verification</string>
<string name="title_mn_surveyapproval">Survey Approval</string>
<string name="title_mn_surveyassign">Survey Assignment</string>
<string name="title_mn_surveyreassign">Survey Re-Assignment</string>
<string name="title_mn_installmentschedule">Installment Schedule</string>
<string name="title_mn_setting">Settings</string>
<string name="msgNoTaskList">You have no task list</string>
<string name="msgNoNewVersion">This current version is the latest version</string>
<string name="login_desc">Login to LeadIn Application</string>
<string name="toast_crash">Ooooops ! MSSODR crashed, but a report has been sent to my developer to help fix the issue !</string>
<string name="password">Password :</string>
<string name="user_id">User ID :</string>
<string name="news_desc">TextView</string>
<string name="title_news_parent">Medium Text</string>
<string name="data_not_found">Data is empty.</string>
<string name="dummy_no_order">1234567</string>
<string name="notes">Notes</string>
<string name="medium_text">Medium Text</string>
<string name="title_activity_developer_option">Dev Options</string>
<string name="changelog_v230"><![CDATA[Changes: <br/>
1. Support Multilingual <br/>
2. Update compatibility for Android M <br/>
3. Support refresh location by tap GPS Icon <br/>
4. Increase performance <br/>
5. Decrease memory usage <br/>
6. Add cirle radius in map viewer if accuracy available <br/>
7. Loading not relevant Questions automatically <br/>
8. Support Copy value from other questions <br/>
9. Support advanced question validation <br/>
10. Minor Bug fixes]]></string>
<string name="changelog_v2310"><![CDATA[Changes: <br/> 1. Support copy value with condition]]></string>
<string name="changelog_v2320"><![CDATA[Changes: <br/>
1. Fixing profile and cover image if exit
]]></string>
<string name="changelog_v200"><![CDATA[Changes: <br/>
1. Add support for Timeline Task <br/>
2. Add support for navigation menu]]></string>
<string name="changelog_v210"><![CDATA[Changes: <br/>
1. Add Support for Promo<br/>]]></string>
<string name="changelog_v220"><![CDATA[Changes: <br/>
1. Add Support for Oauth]]></string>
<string name="changelog_v2330"><![CDATA[Changes: <br/>
1. Fixing Synchronize<br/>
2. Fixing Timeline for Attendance<br/>
3. Fixing load question answer<br/>
4. Add check root device]]></string>
<string name="changelog_v2340"><![CDATA[Changes: <br/>
1. Aplhanumeric Password requirement]]></string>
<string name="changelog_v2350"><![CDATA[Changes: <br/>
1. Minor Bug Fixes<br/>
2. Removing Inactive Form]]></string>
<string name="changelog_v2360"><![CDATA[Changes: <br/>
1. Minor Bug Fixes]]></string>
<string name="changelog_v2370"><![CDATA[Changes: <br/>
1. Minor Bug Fixes
2. Fixing GPS issues]]></string>
<string name="changelog_v2380"><![CDATA[Changes: <br/>
1. Minor Bug Fixes]]></string>
<string name="changelog_v2390"><![CDATA[Changes: <br/>
1. Minor Bug Fixes]]></string>
<string name="changelog_v23100"><![CDATA[Changes: <br/>
1. Minor Bug Fixes]]></string>
<string name="changelog_v23110"><![CDATA[Changes: <br/>
1. Minor Bug Fixes]]></string>
<string name="changelog_v23120"><![CDATA[Changes: <br/>
1. Minor Bug Fixes]]></string>
<string name="changelog_v23130"><![CDATA[Changes: <br/>
1. Minor Bug Fixes]]></string>
<string name="changelog_v23140"><![CDATA[Changes: <br/>
1. Minor Bug Fixes]]></string>
<string name="changelog_v23150"><![CDATA[Changes: <br/>
1. Minor Bug Fixes]]></string>
<string name="changelog_v23160"><![CDATA[Changes: <br/>
1. Minor Bug Fixes]]></string>
<string name="changelog_v23170"><![CDATA[Changes: <br/>
1. Minor Bug Fixes]]></string>
<string name="changelog_v23180"><![CDATA[Changes: <br/>
1. Minor Bug Fixes]]></string>
<string name="changelog_v23190"><![CDATA[Changes: <br/>
1. Minor Bug Fixes]]></string>
<string name="changelog_v2400"><![CDATA[Changes: <br/>
1. Add device information at about<br/>
2. Support online lookup<br/>
3. Task list view : box or list]]></string>
<string name="changelog_v3110"><![CDATA[Changes: <br/>
1. Add FailedDraft status on TaskH when there is specific response code is received from server .<br/>
2. Add user help .<br/>
3. Fix take picture failed on android 10 .<br/>
4. App slow on Login-Logout-Login .<br/>
5. Enhancement for answer type LuOnline.<br/>
6. Fix bug uploading task on timeline not showing.<br/>
7. Add support for Android 10
]]></string>
<string name="changelog_v3120">
<![CDATA[ Changes: <br/> 1. Fix bug Cloud CSV can\'t be imported .<br/>
2. Fix bug application running service stopped caused by close application .<br/>
3. Fix synchronize crash .<br/>
4. Fix crash when is_tracking off . <br/>
5. Remove search by priority . <br/>
6. Fix force stop not opening timeline . ]]>
</string>
<string name="changelog_v3130">
<![CDATA[ Changes: <br/>
1. Fix user help issues.<br/>
2. Fix automatic logout when press back.<br/>
3. Add call customer phone number action at customer form.<br/>
4. Fix validation not working at form because of regex.<br/>
5. Add sample text at user help with dynamic data.<br/>
]]>
</string>
<string name="changelog_v3140">
<![CDATA[ Changes: <br/>
1. Refactor some codes.<br/>
2. Fix some bugs.<br/>]]>
</string>
</resources>

View file

@ -0,0 +1,41 @@
package com.adins.mss.base.dynamicform.form.questions;
import android.annotation.SuppressLint;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import androidx.fragment.app.DialogFragment;
import com.adins.mss.constant.Global;
import com.adins.mss.foundation.formatter.Formatter;
import com.adins.mss.foundation.formatter.Tool;
import java.util.Date;
/**
* Created by gigin.ginanjar on 31/08/2016.
*/
@SuppressLint("ValidFragment")
public class DatePickerFragment extends DialogFragment {
private DatePickerDialog.OnDateSetListener listener;
public DatePickerFragment(DatePickerDialog.OnDateSetListener listener) {
this.listener = listener;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current time as the default values for the picker
Date sysdate = Tool.getSystemDateTime();
String dt = Formatter.formatDate(sysdate, Global.DATE_STR_FORMAT);
String[] temp1 = dt.split("/");
int dayOfMonth = Integer.parseInt(temp1[0]);
int month = Integer.parseInt((temp1[1])) - 1;
int year = Integer.parseInt(temp1[2]);
return new DatePickerDialog(getActivity(), listener,
year, month, dayOfMonth);
}
}