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,117 @@
package com.adins.mss.odr;
import android.util.Log;
import com.adins.mss.base.GlobalData;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.User;
import com.adins.mss.foundation.camerainapp.helper.Logger;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.foundation.questiongenerator.NotEqualSymbol;
import com.gadberry.utility.expression.Expression;
import com.gadberry.utility.expression.OperatorSet;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
/**
* To work on unit tests, switch the Test Artifact in the Build Variants view.
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() throws Exception {
assertEquals(4, 2 + 2);
}
@Before
public void initializeUser() throws Exception{
User user = new User("e5131499-fd95-480d-821a-07508e79b911");
user.setLogin_id("gigin@demo");
user.setBranch_id("HO");
user.setBranch_name("Head Office");
user.setDealer_name("DLR NM");
user.setFlag_job("JOB MH");
GlobalData.getSharedGlobalData().setUser(user);
}
@Test
public void testingRelevant() throws Exception {
String relevantExpression = "({$LOGIN_ID}==gigin) && ({$FLAG_JOB}==JOBMH)";
String convertedExpression = new String(relevantExpression); //make a copy of
if (convertedExpression == null || convertedExpression.length() == 0) {
Log.i("info", "expresssion null");
} else {
//TODO, use extractIdentifierFromString next time to simplify
boolean needReplacing = true;
while (needReplacing) {
int idxOfOpenBrace = convertedExpression.indexOf('{');
if (idxOfOpenBrace != -1) { //there's {, prepare to replace what inside the {}
int idxOfCloseBrace = convertedExpression.indexOf('}');
String identifier = convertedExpression.substring(idxOfOpenBrace + 1, idxOfCloseBrace);
int idxOfOpenAbs = identifier.indexOf("$");
if(idxOfOpenAbs != -1){
String finalIdentifier = identifier.substring(idxOfOpenAbs+1);
String flatAnswer ="";
if(finalIdentifier.equals(Global.IDF_LOGIN_ID)) {
flatAnswer = GlobalData.getSharedGlobalData().getUser().getLogin_id();
int idxOfOpenAt = flatAnswer.indexOf('@');
if (idxOfOpenAt != -1) {
flatAnswer = flatAnswer.substring(0, idxOfOpenAt);
}
}else if(finalIdentifier.equals(Global.IDF_BRANCH_ID)){
flatAnswer = GlobalData.getSharedGlobalData().getUser().getBranch_id();
}else if(finalIdentifier.equals(Global.IDF_BRANCH_NAME)){
flatAnswer = GlobalData.getSharedGlobalData().getUser().getBranch_name();
}else if(finalIdentifier.equals(Global.IDF_UUID_USER)){
flatAnswer = GlobalData.getSharedGlobalData().getUser().getUuid_user();
}else if(finalIdentifier.equals(Global.IDF_JOB)){
flatAnswer = GlobalData.getSharedGlobalData().getUser().getFlag_job();
}else if(finalIdentifier.equals(Global.IDF_DEALER_NAME)){
flatAnswer = GlobalData.getSharedGlobalData().getUser().getDealer_name();
}
if (flatAnswer != null && flatAnswer.length() > 0) {
convertedExpression = convertedExpression.replace("{"+identifier+"}", flatAnswer);
} else { //if there's no answer, just hide the question
Logger.e("error",flatAnswer);
}
}else {
String flatAnswer = "Bcd+";
if (flatAnswer != null && flatAnswer.length() > 0) {
//Glen 22 Oct 2014, enable multi-depth checking for 'multiple' question
//NOTE: though it's possible to just iterate on flatAnswer substrings, we prefer to stay on method if size is 1
String answers[] = Tool.split(flatAnswer, Global.DELIMETER_DATA);
if (answers.length == 1) {
// convertedExpression = convertedExpression.replace("{"+identifier+"}", flatAnswer);
convertedExpression = convertedExpression.replace("{" + identifier + "}", answers[0]);
}
}
}
}
else {
needReplacing = false;
}
}
try {
OperatorSet opSet = OperatorSet.getStandardOperatorSet();
opSet.addOperator("!=", NotEqualSymbol.class);
Expression exp = new Expression(convertedExpression);
exp.setOperatorSet(opSet);
boolean result = exp.evaluate().toBoolean();
assertEquals(true,result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}

View file

@ -0,0 +1,58 @@
package com.adins.mss.base.util;
import android.animation.TimeInterpolator;
import androidx.annotation.IntRange;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.AnticipateInterpolator;
import android.view.animation.AnticipateOvershootInterpolator;
import android.view.animation.BounceInterpolator;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.LinearInterpolator;
import android.view.animation.OvershootInterpolator;
/**
* Created by gigin.ginanjar on 20/07/2016.
*/
public class Interpolator {
public static final int ACCELERATE_DECELERATE_INTERPOLATOR = 0;
public static final int ACCELERATE_INTERPOLATOR = 1;
public static final int ANTICIPATE_INTERPOLATOR = 2;
public static final int ANTICIPATE_OVERSHOOT_INTERPOLATOR = 3;
public static final int BOUNCE_INTERPOLATOR = 4;
public static final int DECELERATE_INTERPOLATOR = 5;
public static final int FAST_OUT_LINEAR_IN_INTERPOLATOR = 6;
public static final int FAST_OUT_SLOW_IN_INTERPOLATOR = 7;
public static final int LINEAR_INTERPOLATOR = 8;
public static final int LINEAR_OUT_SLOW_IN_INTERPOLATOR = 9;
public static final int OVERSHOOT_INTERPOLATOR = 10;
/**
* Creates interpolator.
*
* @param interpolatorType
* @return
*/
public static TimeInterpolator createInterpolator(@IntRange(from = 0, to = 10) final int interpolatorType) {
switch (interpolatorType) {
case ACCELERATE_DECELERATE_INTERPOLATOR:
return new AccelerateDecelerateInterpolator();
case ACCELERATE_INTERPOLATOR:
return new AccelerateInterpolator();
case ANTICIPATE_INTERPOLATOR:
return new AnticipateInterpolator();
case ANTICIPATE_OVERSHOOT_INTERPOLATOR:
return new AnticipateOvershootInterpolator();
case BOUNCE_INTERPOLATOR:
return new BounceInterpolator();
case DECELERATE_INTERPOLATOR:
return new DecelerateInterpolator();
case LINEAR_INTERPOLATOR:
return new LinearInterpolator();
case OVERSHOOT_INTERPOLATOR:
return new OvershootInterpolator();
default:
return new LinearInterpolator();
}
}
}

View file

@ -0,0 +1,10 @@
package com.adins.mss.foundation.print.rv;
/**
* Created by angga.permadi on 4/20/2016.
*/
public interface ErrorCodes {
String ERROR_PARSING_JSON = "001";
String STATUS_RESPONSE_NULL = "002";
String STATUS_RESPONSE_FAILED = "003";
}

View file

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bgColor"
android:id="@+id/layout">
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/refreshTimeline"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--<ListView-->
<!--android:id="@+id/listLog"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent">-->
<!--</ListView>-->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/listLog"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<!--<android.support.design.widget.FloatingActionButton-->
<!--android:id="@+id/btnRefresh"-->
<!--android:layout_width="60dp"-->
<!--android:layout_height="60dp"-->
<!--android:src="@drawable/ic_menu_refresh_white"-->
<!--android:background="@drawable/button_background_round"-->
<!--android:visibility="gone"/>-->
<TextView
android:id="@+id/txv_data_not_found"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/data_not_found"
android:textAppearance="?android:attr/textAppearanceSmall"
android:visibility="gone" />
</RelativeLayout>

View file

@ -0,0 +1,133 @@
package com.adins.mss.odr.other;
import android.Manifest;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import androidx.core.app.ActivityCompat;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.adins.mss.base.todolist.ToDoList;
import com.adins.mss.dao.TaskH;
import com.adins.mss.odr.R;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import java.util.List;
public class AllTaskLocation extends Fragment implements LocationListener, OnMapReadyCallback {
public static List<TaskH> listTaskH;
GoogleMap googleMap;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(com.adins.mss.odr.R.layout.all_task_location_layout, container, false);
listTaskH = ToDoList.getListTask();
for (TaskH task : listTaskH) {
double latitude = Double.parseDouble(task.getLatitude());
double longitude = Double.parseDouble(task.getLongitude());
LatLng latLng = new LatLng(latitude, longitude);
googleMap.addMarker(new MarkerOptions().position(latLng));
googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
googleMap.animateCamera(CameraUpdateFactory.zoomTo(15));
}
return view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
SupportMapFragment supportMapFragment =
(SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map);
supportMapFragment.getMapAsync(AllTaskLocation.this);
LocationManager locationManager = (LocationManager) getActivity().getSystemService(Activity.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String bestProvider = locationManager.getBestProvider(criteria, true);
if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
Location location = locationManager.getLastKnownLocation(bestProvider);
if (location != null) {
onLocationChanged(location);
}
locationManager.requestLocationUpdates(bestProvider, 20000, 0, this);
}
@Override
public void onLocationChanged(Location location) {
TextView locationTv = (TextView) getView().findViewById(R.id.latlongLocation);
double latitude = location.getLatitude();
double longitude = location.getLongitude();
LatLng latLng = new LatLng(latitude, longitude);
googleMap.addMarker(new MarkerOptions().position(latLng));
googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
googleMap.animateCamera(CameraUpdateFactory.zoomTo(15));
locationTv.setText("Latitude:" + latitude + ", Longitude:" + longitude);
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
private boolean isGooglePlayServicesAvailable() {
int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getActivity());
if (ConnectionResult.SUCCESS == status) {
return true;
} else {
GooglePlayServicesUtil.getErrorDialog(status, getActivity(), 0).show();
return false;
}
}
@Override
public void onMapReady(GoogleMap googleMap) {
if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
googleMap.setMyLocationEnabled(true);
this.googleMap = googleMap;
}
}

View file

@ -0,0 +1,6 @@
package com.adins.mss.base.loyalti;
public interface BaseView<T> {
void setPresenter(T presenter);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7 KiB

View file

@ -0,0 +1,72 @@
package com.adins.mss.coll.api;
import android.content.Context;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.util.GsonHelper;
import com.adins.mss.base.util.Utility;
import com.adins.mss.coll.models.ReceiptHistoryRequest;
import com.adins.mss.coll.models.ReceiptHistoryResponse;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.ReceiptHistory;
import com.adins.mss.foundation.db.dataaccess.ReceiptHistoryDataAccess;
import com.adins.mss.foundation.http.HttpConnectionResult;
import com.adins.mss.foundation.http.HttpCryptedConnection;
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.HttpMetric;
import java.io.IOException;
import java.util.List;
public class ReceiptHistoryApi {
private final Context context;
public ReceiptHistoryApi(Context context) {
this.context = context;
}
public ReceiptHistoryResponse request(String agreementNo, String taskId) throws IOException {
ReceiptHistoryRequest request = new ReceiptHistoryRequest();
request.setAgreementNo(agreementNo);
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
String requestJson = GsonHelper.toJson(request);
String url = GlobalData.getSharedGlobalData().getURL_GET_RECEIPT_HISTORY();
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(context, encrypt, decrypt);
HttpConnectionResult serverResult = null;
// Firebase Performance Trace Network Request
HttpMetric networkMetric = FirebasePerformance.getInstance().newHttpMetric(
url, FirebasePerformance.HttpMethod.POST);
Utility.metricStart(networkMetric, requestJson);
try {
serverResult = httpConn.requestToServer(url, requestJson, Global.DEFAULTCONNECTIONTIMEOUT);
Utility.metricStop(networkMetric, serverResult);
} catch (Exception e) {
e.printStackTrace();
}
String responseJson = "";
if (serverResult != null && serverResult.isOK()) {
try {
responseJson = serverResult.getResult();
} catch (Exception e) {
}
}
ReceiptHistoryResponse receiptHistoryResponse = GsonHelper.fromJson(responseJson, ReceiptHistoryResponse.class);
if (null == receiptHistoryResponse) {
List<ReceiptHistory> receiptHistoryList = ReceiptHistoryDataAccess.getAllByTask(context, taskId);
if (null != receiptHistoryList) {
return null;
} else {
return receiptHistoryResponse;
}
} else {
return receiptHistoryResponse;
}
}
}

View file

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<solid
android:color="@color/gradient_start" />
<stroke
android:width="2dp"
android:color="@android:color/transparent" />
<corners
android:radius="10dp" />
<padding
android:left="10dp"
android:top="8dp"
android:right="10dp"
android:bottom="8dp" />
</shape>
</item>
<item>
<shape>
<stroke
android:width="2dp"
android:color="@android:color/white" />
<corners
android:radius="10dp" />
<padding
android:left="10dp"
android:top="8dp"
android:right="10dp"
android:bottom="8dp" />
</shape>
</item>
</selector>

View file

@ -0,0 +1,29 @@
package com.adins.mss.base.dynamicform;
import com.adins.mss.dao.QuestionSet;
import com.adins.mss.foundation.http.MssResponseType;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class JsonResponseQuestionSet extends MssResponseType {
/**
* Property listQuestionSet
*/
@SerializedName("listQuestionSet")
List<QuestionSet> listQuestionSet;
/**
* Gets the listQuestionSet
*/
public List<QuestionSet> getListQuestionSet() {
return this.listQuestionSet;
}
/**
* Sets the listQuestionSet
*/
public void setListQuestionSet(List<QuestionSet> value) {
this.listQuestionSet = value;
}
}

View file

@ -0,0 +1,40 @@
package com.adins.mss.foundation.sync;
public class SynchronizeItem {
private String syncItemId;
private String action;
public SynchronizeItem(String syncItemId, String action) {
this.syncItemId = syncItemId;
this.action = action;
}
//=== Getter Setter ===//
public String getSyncItemId() {
return syncItemId;
}
public void setSyncItemId(String syncItemId) {
this.syncItemId = syncItemId;
}
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
//
// public Class<?> getJsonType() {
// return jsonType;
// }
//
// public void setJsonType(Class<?> jsonType) {
// this.jsonType = jsonType;
// }
}