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,104 @@
package com.adins.mss.odr.opportunities;
import android.content.Context;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.adins.mss.base.util.Utility;
import com.adins.mss.dao.Account;
import com.adins.mss.dao.GroupTask;
import com.adins.mss.dao.Product;
import com.adins.mss.foundation.db.dataaccess.AccountDataAccess;
import com.adins.mss.foundation.db.dataaccess.GroupTaskDataAccess;
import com.adins.mss.odr.R;
import com.google.firebase.analytics.FirebaseAnalytics;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by muhammad.aap on 11/30/2018.
*/
public class FragmentOpportunities extends Fragment {
private FragmentActivity activity;
private List<Product> productList;
private RecyclerView list;
private OpportunityMenuListAdapter adapter;
private List<Account> accountList;
private List<String> uuidAccount;
private List<GroupTask> groupTasks;
private FirebaseAnalytics screenName;
private List<Map<Integer,List<GroupTask>>> listTaskHistory = new ArrayList<>();
Map<Integer, List<GroupTask>> oneListTaskHistory = new HashMap<Integer, List<GroupTask>>();
@Override
public void onAttach(Context context) {
super.onAttach(context);
setHasOptionsMenu(true);
}
@Override
public void onDestroyView() {
super.onDestroyView();
Utility.freeMemory();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
screenName = FirebaseAnalytics.getInstance(getActivity());
View view = inflater.inflate(R.layout.fragment_opportunities, container, false);
list = (RecyclerView) view.findViewById(R.id.opportunityList);
list.setLayoutManager(new LinearLayoutManager(getActivity()));
list.setHasFixedSize(true);
List<Account> listAcc = AccountDataAccess.getAll(getActivity());
accountList=new ArrayList<>();
if (listAcc != null){
for(int i=0;i<listAcc.size();i++){
accountList.add(listAcc.get(i));
}
uuidAccount=new ArrayList<>();
for(int i=0;i<listAcc.size();i++){
uuidAccount.add(accountList.get(i).getUuid_account());
}
for(int i=0;i<uuidAccount.size();i++){
oneListTaskHistory.put(i, GroupTaskDataAccess.getAllByAccount(getActivity(), uuidAccount.get(i)));
listTaskHistory.add(oneListTaskHistory);
}
}
adapter = new OpportunityMenuListAdapter(getActivity(), listTaskHistory);
list.setAdapter(adapter);
return view;
}
@Override
public void onResume() {
super.onResume();
//Set Firebase screen name
screenName.setCurrentScreen(getActivity(), getString(R.string.screen_name_opportunities_page), null);
// getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
// getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
// getActivity().setTitle(getString(com.adins.mss.base.R.string.title_mn_catalogue));
}
@Override
public void onPause() {
super.onPause();
// mIndicator.cleanup();
}
}

View file

@ -0,0 +1,22 @@
<?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"
app:titleTextAppearance="?android:attr/textAppearanceSmall"
android:titleTextColor="@color/fontColorWhite"
android:background="@drawable/header" />
<ExpandableListView
android:id="@+id/resultOrderlist"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/>
</LinearLayout>

View file

@ -0,0 +1,46 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="4dp"
>
<!-- <uk.co.senab.actionbarpulltorefresh.library.PullToRefreshLayout -->
<!-- android:id="@+id/ptr_layout" -->
<!-- android:layout_width="match_parent" -->
<!-- android:layout_height="match_parent"> -->
<Spinner
android:id="@+id/priorityViewBy"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<!-- </uk.co.senab.actionbarpulltorefresh.library.PullToRefreshLayout> -->
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swiperefresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_below="@+id/priorityCounter"
android:padding="4dp" >
<GridView
android:id="@+id/gridPriority"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:horizontalSpacing="4dp"
android:numColumns="3"
android:verticalSpacing="4dp" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<TextView
android:id="@+id/priorityCounter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/priorityViewBy"
android:layout_below="@+id/priorityViewBy"
android:text="TextView" />
</RelativeLayout>

View file

@ -0,0 +1,10 @@
package com.adins.mss.base.models;
import com.adins.mss.foundation.http.MssResponseType;
/**
* Created by adityapurwa on 30/03/15.
*/
public class ChangePasswordResponseModel extends MssResponseType {
}

View file

@ -0,0 +1,343 @@
package com.adins.mss.base.todolist.form;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import androidx.annotation.Keep;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Toast;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.R;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.dynamicform.CustomerFragment;
import com.adins.mss.base.dynamicform.JsonRequestSubmitTask;
import com.adins.mss.base.dynamicform.JsonResponseSubmitTask;
import com.adins.mss.base.mainmenu.MainMenuActivity;
import com.adins.mss.base.timeline.TimelineManager;
import com.adins.mss.base.todolist.ToDoList;
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.TaskH;
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.foundation.formatter.Formatter;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.foundation.http.HttpConnectionResult;
import com.adins.mss.foundation.http.HttpCryptedConnection;
import com.androidquery.AQuery;
import com.github.jjobes.slidedatetimepicker.SlideDateTimeListener;
import com.github.jjobes.slidedatetimepicker.SlideDateTimePicker;
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.HttpMetric;
import org.acra.ACRA;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class RescheduleFragment extends Fragment {
public static final String TASK_RESCHEDULE = "TASK_RESCHEDULE";
protected View view;
protected AQuery query;
private String taskID;
private String pts_date;
private SlideDateTimeListener listener = new SlideDateTimeListener() {
@Override
public void onDateTimeSet(Date date) {
date.setSeconds(0);
SimpleDateFormat mFormatter = new SimpleDateFormat(Global.DATE_TIME_STR_FORMAT);
SimpleDateFormat gsonFormatter = new SimpleDateFormat(Global.DATE_STR_FORMAT_GSON);
String result = mFormatter.format(date);
pts_date = gsonFormatter.format(date);
query.id(R.id.txtDtm).text(result);
}
// Optional cancel listener
@Override
public void onDateTimeCancel() {
//EMPTY
}
};
@Override
public void onAttach(Context activity) {
super.onAttach(activity);
setHasOptionsMenu(true);
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED",
getClass().getSimpleName());
taskID = getArguments().getString("taskId");
}
@Override
public void onDestroyView() {
super.onDestroyView();
Utility.freeMemory();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (view != null) {
ViewGroup parent = (ViewGroup) view.getParent();
if (parent != null)
parent.removeView(view);
}
try {
view = inflater.inflate(R.layout.reschedule_layout, container,
false);
query = new AQuery(view);
query.id(R.id.btnCancel).clicked(this, "cancel_Click");
query.id(R.id.btnReschedule).clicked(this, "reschedule_Click");
query.id(R.id.btnDtm).clicked(this, "dtm_Click");
} catch (Exception e) {
FireCrash.log(e);
}
return view;
}
@Keep
public void cancel_Click(View view) {
CustomerFragment.doBack(getActivity());
}
@Keep
public void reschedule_Click(View view) {
if (query.id(R.id.txtDtm).getText().toString().length() == 0) {
Toast.makeText(getActivity(), getActivity().getString(R.string.select_reschedule_time),
Toast.LENGTH_SHORT).show();
} else {
Date dateSelected = null;
try {
dateSelected = Formatter.parseDate2(pts_date, Global.DATE_STR_FORMAT_GSON);
} catch (ParseException e) {
e.printStackTrace();
}
Date nowtime = Tool.getSystemDate();
Calendar cal = Calendar.getInstance();
cal.setTime(nowtime);
cal.add(Calendar.DATE, 1);
nowtime = cal.getTime();
if (dateSelected != null && dateSelected.before(nowtime)) {
Toast.makeText(getActivity(), getActivity().getString(R.string.date_after_today),
Toast.LENGTH_SHORT).show();
} else {
new SubmitRescheduleTask().execute(taskID, pts_date);
}
}
}
@Keep
public void dtm_Click(View view) {
showDateTimePicker();
}
public void showDateTimePicker() {
Date nowtime = Tool.getSystemDate();
Calendar cal = Calendar.getInstance();
cal.setTime(nowtime);
cal.add(Calendar.DATE, 1);
nowtime = cal.getTime();
new SlideDateTimePicker.Builder(getActivity().getSupportFragmentManager())
.setListener(listener)
.setInitialDate(new Date())
.setMinDate(nowtime)
.setIs24HourTime(true)
.build()
.show();
}
private class SubmitRescheduleTask extends AsyncTask<String, Void, String> {
String taskId;
TaskH taskH;
String size;
String sec;
String ptsDate;
private ProgressDialog progressDialog;
private String errMessage;
@Override
protected String doInBackground(String... params) {
String result = null;
if (Tool.isInternetconnected(getActivity())) {
try {
taskId = params[0];
ptsDate = params[1];
taskH = TaskHDataAccess.getOneTaskHeader(getActivity(), taskID);
SimpleDateFormat formatter = new SimpleDateFormat(Global.DATE_STR_FORMAT_GSON);
Date date = null;
try {
date = formatter.parse(ptsDate);
} catch (ParseException e1) {
e1.printStackTrace();
}
taskH.setPts_date(date);
String uuidScheme = taskH.getUuid_scheme();
String uuidUser = taskH.getUuid_user();
TaskH h = TaskHDataAccess.getOneTaskHeader(getActivity(), taskId);
h.setUser(null);
h.setScheme(null);
h.setUuid_user(uuidUser);
h.setUuid_scheme(uuidScheme);
h.setSubmit_date(Tool.getSystemDateTime());
JsonRequestSubmitTask task = new JsonRequestSubmitTask();
task.setAudit(GlobalData.getSharedGlobalData().getAuditData());
task.addImeiAndroidIdToUnstructured();
task.setTaskH(h);
task.setTaskD(null);
String json = GsonHelper.toJson(task);
String url = GlobalData.getSharedGlobalData().getURL_SUBMIT_RESCHEDULE();
size = String.valueOf(json.getBytes().length);
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(getActivity(), encrypt, decrypt);
HttpConnectionResult serverResult = null;
Date startTime = Tool.getSystemDateTime();
//Firebase Performance Trace HTTP Request
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);
if (Global.IS_DEV) {
e.printStackTrace();
}
}
if(serverResult == null){
getActivity().getString(R.string.request_error);
return null;
}
if (serverResult.isOK()) {
String resultvalue = serverResult.getResult();
JsonResponseSubmitTask responseSubmitTask = GsonHelper.fromJson(
resultvalue, JsonResponseSubmitTask.class);
if (responseSubmitTask.getStatus().getCode() == 0) {
String status = responseSubmitTask.getResult();
Date finishTime = Tool.getSystemDateTime();
long time = finishTime.getTime() - startTime.getTime();
sec = String.valueOf((int) Math.ceil((double)time / 1000));
if (status == null)
status = "Success";
if (status.equalsIgnoreCase("Success")) {
result = status;
if (responseSubmitTask.getTaskId() != null)
taskId = responseSubmitTask.getTaskId();
} else {
result = status;
}
} else {
if (Global.IS_DEV) {
if (responseSubmitTask.getStatus().getMessage() == null)
System.out.println("AutoSendTaskThread server code :"
+ responseSubmitTask.getStatus().getCode());
else
System.out.println("AutoSendTaskThread server code :"
+ responseSubmitTask.getStatus().getCode()
+ ":"
+ responseSubmitTask.getStatus().getCode());
}
result = String.valueOf(responseSubmitTask.getStatus()
.getCode());
}
}
} catch (Exception e) {
FireCrash.log(e);
errMessage = "Rescheduling task "
+ taskH.getCustomer_name() + " " + getActivity().getString(R.string.failed);
}
} else {
errMessage = getString(R.string.no_internet_connection);
}
return result;
}
@Override
protected void onPostExecute(String result) {
if (progressDialog.isShowing()) {
try {
progressDialog.dismiss();
} catch (Exception e) {
FireCrash.log(e);
}
}
if (errMessage != null) {
Toast.makeText(getActivity(), errMessage, Toast.LENGTH_SHORT).show();
} else {
if (result != null && result.equalsIgnoreCase("Success")) {
if (taskId != null && taskId.length() > 0
&& !taskId.contains("~")) {
taskH.setStatus(TaskHDataAccess.STATUS_SEND_SENT);
ToDoList.removeSurveyFromList(taskId);
taskH.setSubmit_date(Tool.getSystemDateTime());
taskH.setSubmit_duration(sec);
taskH.setSubmit_size(size);
taskH.setSubmit_result(result);
taskH.setTask_id(taskId);
taskH.setLast_saved_question(1);
taskH.setIs_prepocessed(RescheduleFragment.TASK_RESCHEDULE);
TaskHDataAccess.addOrReplace(getActivity(), taskH);
TaskHDataAccess.doBackup(getActivity(), taskH);
TimelineManager.insertTimeline(getActivity(), taskH);
}
} else {
String txtResult = getActivity().getString(R.string.reschedule_failed, taskH.getCustomer_name());
final NiftyDialogBuilder dialogBuilder = NiftyDialogBuilder
.getInstance(getActivity());
dialogBuilder.withTitle(getActivity().getString(R.string.warning_capital)).withMessage(txtResult)
.withButton1Text(getActivity().getString(R.string.btnClose))
.setButton1Click(new OnClickListener() {
@Override
public void onClick(View paramView) {
dialogBuilder.dismiss();
CustomerFragment.doBack(getActivity());
}
}).isCancelable(true).show();
}
try {
MainMenuActivity.setDrawerCounter();
} catch (Exception e) {
FireCrash.log(e);
}
}
}
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(getActivity(), "",
getActivity().getString(R.string.sending_reschedule_progress), true);
}
@Override
protected void onProgressUpdate(Void... values) {
//EMPTY
}
}
}

View file

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/tv_white">
<ScrollView android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<LinearLayout android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="0dp"
android:padding="8dp">
<TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/collection_activity"
android:textStyle="bold"
android:textSize="24sp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="8dp"
android:orientation="horizontal">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_agreement_number"
android:textColor="#666"
android:textSize="15sp"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:id="@+id/agreementNumber"
android:textColor="#666"
android:textSize="15sp"/>
</LinearLayout>
<HorizontalScrollView
android:id="@+id/horizontalScrollView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true">
<TableLayout
android:id="@+id/tableHeaders"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:stretchColumns="3">
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/spinner_background"
android:gravity="center_vertical"
android:paddingBottom="8dp"
android:paddingTop="8dp">
<TextView
android:gravity="center_vertical"
android:paddingRight="6dp"
android:paddingLeft="6dp"
android:text="No"
android:textColor="@color/tv_white"
android:textSize="12sp"
android:textStyle="bold"/>
<TextView
android:gravity="center_vertical"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:text="@string/label_activity_date"
android:textColor="@color/tv_white"
android:textSize="12sp"
android:textStyle="bold"/>
<TextView
android:gravity="center_vertical"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:minWidth="70dp"
android:text="@string/label_action"
android:textColor="@color/tv_white"
android:textSize="12sp"
android:textStyle="bold"/>
<TextView
android:gravity="center_vertical"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:text="@string/label_collection_number"
android:textColor="@color/tv_white"
android:textSize="12sp"
android:textStyle="bold"/>
</TableRow>
</TableLayout>
</HorizontalScrollView>
</LinearLayout>
</ScrollView>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="bottom">
<ImageButton
android:id="@+id/imageBtnDownload"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@android:color/transparent"
android:src="@drawable/ic_download" />
</LinearLayout>
</LinearLayout>