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,133 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!-- the theme applied to the application or activity -->
<style name="CustomTheme"
parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/gradient_end</item>
<item name="colorPrimaryDark">@color/login_color</item>
<item name="colorAccent">@color/gradient_end</item>
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="actionModeStyle">@style/MyActionMode</item>
<item name="actionModeCloseButtonStyle">@style/MyActionModeCloseStyle</item>
<item name="android:popupMenuStyle">@style/PopupMenu</item>
<item name="android:editTextStyle">@style/MyEditText</item>
<item name="android:textViewStyle">@style/MyTextView</item>
<!--<item name="android:buttonStyle">@style/MyButton</item>-->
<item name="android:spinnerStyle">@style/MySpinner</item>
<item name="android:actionBarTabStyle">@style/MyActionBarTab</item>
<item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item>
<item name="ptrHeaderStyle">@style/PtrHeader</item>
<item name="android:titleTextColor">@color/fontColorWhite</item>
<item name="windowActionModeOverlay">true</item>
</style>
<style name="CustomTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="PtrHeader" parent="@android:style/Widget">
<item name="ptrHeaderBackground">@drawable/actionbar_background</item>
<!-- This is commented out as you should not set this unless you know what you're doing -->
<!-- <item name="ptrHeaderHeight"></item> -->
<item name="ptrHeaderTitleTextAppearance">@style/TextAppearance.Custom.PtrHeader.Title</item>
<item name="ptrProgressBarStyle">inside</item>
<item name="ptrProgressBarColor">@android:color/holo_green_light</item>
<item name="ptrPullText">Pull to Refresh</item>
<item name="ptrRefreshingText">Loading ...</item>
<item name="ptrReleaseText">Let go if you want me to refresh!</item>
</style>
<style name="TextAppearance.Custom.PtrHeader.Title"
parent="android:TextAppearance.Large.Inverse">
<item name="android:textSize">20dp</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar"
parent="Widget.AppCompat.ActionBar">
<item name="android:background">@drawable/actionbar_background</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:actionModeSplitBackground">@drawable/button_background</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBarTab"
parent="Widget.AppCompat.ActionBar.TabView">
<item name="android:background">@drawable/actionbar_tabindicator</item>
<item name="android:showDividers">none</item>
</style>
<style name="MyActionBarTabText" parent="Widget.AppCompat.ActionBar">
<item name="android:textColor">#ffffff</item>
</style>
<!-- Popup styles -->
<style name="PopupMenu"
parent="Widget.AppCompat.PopupMenu">
<item name="android:popupBackground">@android:color/white</item>
<item name="android:textColor">@color/tv_darker</item>
<item name="android:showDividers">middle|beginning|end</item>
</style>
<!-- Edittext styles -->
<style name="MyEditText"
parent="Widget.AppCompat.EditText">
<item name="android:textColor">@color/tv_darker</item>
<item name="android:minHeight">40dp</item>
<item name="android:textColorHint">@color/shadowColor</item>
</style>
<!-- Button styles -->
<style name="MyButton"
parent="Widget.AppCompat.Button">
<item name="android:background">@drawable/button_background</item>
<item name="android:textColor">@color/tv_white</item>
<item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
</style>
<!-- Text View styles -->
<style name="MyTextView"
parent="Widget.AppCompat.TextView.SpinnerItem">
<item name="android:textColor">@color/tv_darker</item>
<item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
</style>
<!-- Spinner styles -->
<style name="MySpinner"
parent="Widget.AppCompat.Spinner">
<item name="android:background">@color/bgColor</item>
<item name="android:popupBackground">@color/bgColor</item>
<item name="android:padding">3dp</item>
</style>
<style name="CustomTheme.TranslucentActionBar">
<item name="android:actionBarStyle">@style/Widget.ActionBar.Transparent</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="CustomTheme.Light.TranslucentActionBar" parent="Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/Widget.Light.ActionBar.Transparent</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="MyActionMode"
parent="Widget.AppCompat.ActionMode">
<item name="background">@drawable/actionbar_background</item>
<item name="titleTextStyle">@style/MyActionModeTextStyle</item>
</style>
<style name="MyActionModeCloseStyle">
<item name="android:visibility">invisible</item>
</style>
<style name="MyActionModeTextStyle">
<item name="android:textColor">@android:color/white</item>
<item name="android:textSize">16sp</item>
</style>
</resources>

View file

@ -0,0 +1,71 @@
package com.adins.mss.foundation.scheme;
import android.content.Context;
import android.os.AsyncTask;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.R;
import com.adins.mss.base.util.GsonHelper;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
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.scheme.sync.SyncQuestionSetRequest;
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.HttpMetric;
import java.lang.ref.WeakReference;
/**
* Created by angga.permadi on 3/3/2016.
*/
public abstract class DataScheme<Params, Progress, Result> extends AsyncTask<Params, Progress, Result> {
protected String errorMessage;
protected WeakReference<Context> context;
protected SyncQuestionSetRequest entity;
public DataScheme(Context context, SyncQuestionSetRequest entity) {
this.context = new WeakReference<Context>(context);
this.entity = entity;
}
@SafeVarargs
@Override
protected final Result doInBackground(Params... params) {
entity.setAudit(GlobalData.getSharedGlobalData().getAuditData());
HttpCryptedConnection httpConn = new HttpCryptedConnection(context.get(),
GlobalData.getSharedGlobalData().isEncrypt(), GlobalData.getSharedGlobalData().isDecrypt());
HttpConnectionResult serverResult = null;
String json = GsonHelper.toJson(entity);
//Firebase Performance Trace HTTP Request
HttpMetric networkMetric =
FirebasePerformance.getInstance().newHttpMetric(getUrl(), FirebasePerformance.HttpMethod.POST);
Utility.metricStart(networkMetric, json);
if (Tool.isInternetconnected(context.get())) {
try {
serverResult = httpConn.requestToServer(getUrl(), json, Global.DEFAULTCONNECTIONTIMEOUT);
Utility.metricStop(networkMetric, serverResult);
} catch (Exception e) {
e.printStackTrace();
errorMessage = context.get().getString(R.string.failed_send_data);
return onBackgroundResult(null, null);
}
} else {
errorMessage = context.get().getString(R.string.no_internet_connection);
}
return onBackgroundResult(serverResult, entity.getUuid_scheme());
}
protected void onDestroy() {
}
protected abstract Result onBackgroundResult(HttpConnectionResult serverResult, String uuidScheme);
protected abstract String getUrl();
}

View file

@ -0,0 +1,35 @@
package com.adins.mss.odr.login;
import android.content.Context;
import android.content.Intent;
import com.adins.mss.base.about.activity.AboutActivity;
import com.adins.mss.base.login.DefaultLoginModel;
import com.adins.mss.constant.Global;
import com.adins.mss.odr.ChangeLog;
import com.adins.mss.odr.MOSynchronizeActivity;
public class MODefaultLoginModel extends DefaultLoginModel{
public MODefaultLoginModel(Context context) {
super(context);
// TODO Auto-generated constructor stub
//bong 29 apr 15 - set Global intent to go to synhronize after force change password
Global.syncIntent = new Intent(getContext(), MOSynchronizeActivity.class);
}
@Override
protected int getBuildNumber() {
int c = Global.BUILD_VERSION;//ChangeLog.getChangeLog().get(0).getBuildVersion();
AboutActivity.setChangeLog(ChangeLog.getChangeLog(getContext()), 1);
return c;
}
@Override
protected Intent getIntentSynchronize() {
// TODO Auto-generated method stub
return new Intent(getContext(), MOSynchronizeActivity.class);
}
}

View file

@ -0,0 +1,23 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/newTaskLayout"
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" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/toolbar">
</ListView>
</RelativeLayout>

View file

@ -0,0 +1,50 @@
package com.adins.mss.base.checkout;
import android.location.Location;
import com.adins.mss.base.checkout.activity.CheckOutActivity;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.LocationInfo;
import com.adins.mss.foundation.location.LocationTrackingManager;
import com.google.android.gms.location.LocationListener;
import java.util.Date;
public class CheckOutLocationListener implements LocationListener {
public static Location currentLocation;
private LocationInfo locationInfo = new LocationInfo();
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
if (location != null) {
if (location.getAccuracy() < 1000) {
currentLocation = location;
LocationTrackingManager ltm = Global.LTM;
Global.FLAG_LOCATION_TYPE = 2; //CheckOut
locationInfo = ltm.getCurrentLocation(Global.FLAG_LOCATION_CHECKOUT);
locationInfo.setLatitude(String.valueOf(location.getLatitude()));
locationInfo.setLongitude(String.valueOf(location.getLongitude()));
Date date = new Date(location.getTime());
locationInfo.setGps_time(date);
locationInfo.setIs_gps_time(Global.TRUE_STRING);
locationInfo.setAccuracy(Math.round(location.getAccuracy()));
CheckOutActivity.setNewLocation();
CheckOutManager.stopPeriodicUpdates();
}
} else {
}
}
/**
* Get Current Location which Good Accuracy
*
* @return <b>Location</b>
*/
public LocationInfo getNewLocationInfo() {
// TODO Auto-generated method stub
return locationInfo;
}
}

View file

@ -0,0 +1,57 @@
package com.adins.mss.base.loyalti.barchart.ranklegends;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.adins.mss.base.R;
import com.adins.mss.base.loyalti.model.RankDetail;
import java.util.ArrayList;
import java.util.List;
public class RankLegendsAdapter extends BaseAdapter {
private List<RankDetail> dataset = new ArrayList<>();
private Context context;
public RankLegendsAdapter(Context context,List<RankDetail> dataset) {
this.context = context;
for(int i=dataset.size()-1; i>=0; i--){
this.dataset.add(dataset.get(i));
}
}
@Override
public int getCount() {
return dataset.size();
}
@Override
public Object getItem(int position) {
return dataset.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
convertView = LayoutInflater.from(context).inflate(R.layout.rank_legend_item,parent,false);
}
RankDetail item = dataset.get(position);
TextView legendText = convertView.findViewById(R.id.legendText);
legendText.setTextColor(item.colorValue);
legendText.setText(item.level);
return convertView;
}
}

View file

@ -0,0 +1,30 @@
<?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"
android:fitsSystemWindows="true"/>
<RelativeLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bgColorWhite">
</androidx.recyclerview.widget.RecyclerView>
</RelativeLayout>
</LinearLayout>

View file

@ -0,0 +1,134 @@
package com.adins.mss.foundation.db.dataaccess;
import android.content.Context;
import com.adins.mss.dao.DaoSession;
import com.adins.mss.dao.ImageResult;
import com.adins.mss.dao.ImageResultDao;
import com.adins.mss.foundation.db.DaoOpenHelper;
import java.util.List;
import de.greenrobot.dao.query.QueryBuilder;
public class ImageResultDataAccess {
// private static DaoOpenHelper daoOpenHelper;
/**
* use to generate dao session that you can access modelDao
*
* @param context --> context from activity
* @return
*/
protected static DaoSession getDaoSession(Context context) {
/*if(daoOpenHelper==null){
// if(daoOpenHelper.getDaoSession()==null)
daoOpenHelper = new DaoOpenHelper(context);
}
DaoSession daoSeesion = daoOpenHelper.getDaoSession();
return daoSeesion;*/
return DaoOpenHelper.getDaoSession(context);
}
/**
* get imageResult dao and you can access the DB
*
* @param context
* @return
*/
protected static ImageResultDao getImageResultDao(Context context) {
return getDaoSession(context).getImageResultDao();
}
/**
* Clear session, close db and set daoOpenHelper to null
*/
public static void closeAll() {
/*if(daoOpenHelper!=null){
daoOpenHelper.closeAll();
daoOpenHelper = null;
}*/
DaoOpenHelper.closeAll();
}
/**
* add imageResult as entity
*
* @param context
* @param imageResult
*/
public static void add(Context context, ImageResult imageResult) {
getImageResultDao(context).insert(imageResult);
}
/**
* add imageResult as list entity
*
* @param context
* @param imageResultList
*/
public static void add(Context context, List<ImageResult> imageResultList) {
getImageResultDao(context).insertInTx(imageResultList);
}
/**
* delete all content in table.
*
* @param context
*/
public static void clean(Context context) {
getImageResultDao(context).deleteAll();
}
/**
* @param context
* @param imageResult
*/
public static void delete(Context context, ImageResult imageResult) {
getImageResultDao(context).delete(imageResult);
}
/**
* delete all record by keyTaskH
*
* @param context
* @param keyTaskH
*/
public static void delete(Context context, String keyTaskH) {
QueryBuilder<ImageResult> qb = getImageResultDao(context).queryBuilder();
qb.where(ImageResultDao.Properties.Uuid_task_h.eq(keyTaskH));
qb.build();
getImageResultDao(context).deleteInTx(qb.list());
}
/**
* @param context
* @param imageResult
*/
public static void update(Context context, ImageResult imageResult) {
getImageResultDao(context).update(imageResult);
}
/**
* select * from table where uuid_task_h = param
*
* @param context
* @param keyTaskH
* @return
*/
public static List<ImageResult> getAll(Context context, String keyTaskH) {
QueryBuilder<ImageResult> qb = getImageResultDao(context).queryBuilder();
qb.where(ImageResultDao.Properties.Uuid_task_h.eq(keyTaskH));
qb.build();
return qb.list();
}
/**
* select imageResult per
*
* @param context
* @return
*/
}

View file

@ -0,0 +1,123 @@
# Target URL
#url_main=http://app.ad-ins.com/adimobile/msswebservicessit/services/m/
#url_main=http://app.ad-ins.com/adimobile/msswebservicesdemo/services/m/
url_main=http://mss-sit-svr.ad-ins.com:8080/msswebservicessit/services/m/
#url_serv_login=user/login
#url_serv_attendance=
url_serv_sync=user/sync
url_upload_avatar=user/updateavatar
url_serv_tracking=tracking
#url_serv_submit=submit
url_serv_personalization=person
url_serv_location_history=user/updatelocationhistory
#url_serv_refresh_task=task/refreshtask
#url_serv_retrieve_task_list=task/retrievetasklist
#------------------------
url_login=user/login
url_update_fcm=user/updatefcm
url_changepassword=user/changepassword
url_get_absensi=user/absensi
url_syncparam=sync/syncParam
url_sync_file=sync/datafiles
url_submitlastsync=sync/submitLastSync
url_syncparam_constraint=sync/syncParamConstraint
url_get_tasklist=task/retrievetasklist
url_refreshtask=task/refreshtask
url_submittask=task/submittask
url_submitopenreadtask=task/updatereadopentask
url_get_questionset=form/questionset
url_get_verification=form/retrieveVerificationForm
url_get_image=form/getimages
url_get_scheme=form/retrieveForm
#url_get_collectionlist
#url_submit
#url_inquiry
#url_updatelocationhistory
#url_ordertracking
#url_sync
#url_updatetaskread
#url_presubmit
#url_error_logger
url_get_svyperformance=task/surveyperformance
url_get_lookup=task/getUserAssign
url_get_list_reassignment=task/getHeaderTaskList
url_get_detail_reassignment=task/getDetailTask
url_get_list_assignment=task/getHeaderTaskList
url_get_detail_assignment=task/getDetailTask
url_get_detail_order=task/getDetailTask
url_submit_assign=task/submitTaskChange
url_get_list_verification=task/getverificationtasklist
url_get_list_approval=task/getapprovaltasklist
url_senddepositreport=task/depositreport
url_get_paymenthistory=paymenthistory/retrievepaymenthistory
url_get_installmentschedule=installschedule/retrieveinsschedule
url_get_collectionhistory=getCollectionHistory
url_submitverificationtask=task/submitverificationtask
url_submitapprovaltask=task/submitappprovaltask
url_get_contentnews=getContentNews
url_checkorder=task/checkorder
url_get_task=gettask
url_get_newsheader=task/contentnews
url_get_newscontent=task/contentnews
url_get_list_cancelorder=task/cancelorder
url_get_detail_cancelorder=task/cancelorder
url_get_cancelorder=task/cancelorder
url_submit_track=user/updatelocationhistory
url_submit_reschedule=task/submitpts
url_get_list_user=task/getlistuser
url_check_update=user/checkupdate
url_get_lookup_answer=task/luOnline
url_submit_dkcp=task/submitDkcp
#Loyalti
url_get_detailkompetisi=user/getdetailcompetition
url_get_logo=user/geticoncompetition
url_loyalty_detail_point=user/detailpoint
#------------------------
#CR external db
save_path=/aitmss/data/
use_external_storage=true
#------------------------
encrypt=false
decrypt=false
is_developer=true
is_developer_mode=false
is_bypass_developer=false
is_secure_connection=false
can_access_developer_mode=true
is_required_access_token=true
client_id=android
use_own_camera=true
is_bypassroot = false
enable_user_help = true
enable_loc_permission_ui = true
disable_acra = true
application=MS
max_log=10
log_age=0
default_max_lenght=100
thumb_width=240
thumb_height=360
camera_quality=1
interval_tracking=6000
interval_autosend=6000
interval_gps_timeout=6000
change_uuid=false
divider_uuid=-

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="14dp"
android:height="14dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/fontColor"
android:pathData="M11,17c0,0.55 0.45,1 1,1s1,-0.45 1,-1 -0.45,-1 -1,-1 -1,0.45 -1,1zM11,3v4h2L13,5.08c3.39,0.49 6,3.39 6,6.92 0,3.87 -3.13,7 -7,7s-7,-3.13 -7,-7c0,-1.68 0.59,-3.22 1.58,-4.42L12,13l1.41,-1.41 -6.8,-6.8v0.02C4.42,6.45 3,9.05 3,12c0,4.97 4.02,9 9,9 4.97,0 9,-4.03 9,-9s-4.03,-9 -9,-9h-1zM18,12c0,-0.55 -0.45,-1 -1,-1s-1,0.45 -1,1 0.45,1 1,1 1,-0.45 1,-1zM6,12c0,0.55 0.45,1 1,1s1,-0.45 1,-1 -0.45,-1 -1,-1 -1,0.45 -1,1z"/>
</vector>

View file

@ -0,0 +1,63 @@
<?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="wrap_content"
android:id="@+id/imageReviewLayout"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp">
<TextView
android:id="@+id/questionNoLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0. "
android:textAppearance="?android:attr/textAppearanceSmall"/>
<TextView
android:id="@+id/questionImageLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Label"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_toRightOf="@+id/questionNoLabel"/>
<LinearLayout
android:id="@+id/imageAnswerLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_margin="5dp"
android:weightSum="1"
android:layout_gravity="center"
android:layout_below="@+id/questionImageLabel">
<ImageView
android:id="@+id/imgPhotoAnswer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/icon_camera"
android:layout_gravity="center"
android:layout_weight="0.5"/>
<ImageView
android:id="@+id/imgLocationAnswer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/ic_absent"
android:layout_gravity="center"
android:layout_weight="0.5"/>
</LinearLayout>
<TextView
android:id="@+id/questionImageAnswer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_marginBottom="5dp"
android:textSize="10dp"
android:layout_below="@+id/imageAnswerLayout"
android:layout_toRightOf="@+id/questionNoLabel"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_below="@+id/questionImageAnswer"
android:background="@color/timelineLine"
android:layout_marginBottom="5dp"/>
</RelativeLayout>