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,147 @@
package com.adins.mss.odr.accounts.adapter;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import androidx.core.app.ActivityCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentTransaction;
import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
import com.adins.mss.base.NewMainActivity;
import com.adins.mss.dao.Account;
import com.adins.mss.odr.R;
import com.adins.mss.odr.accounts.AccountDetailFragment;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Created by olivia.dg on 11/17/2017.
*/
public class AccountListAdapter extends RecyclerView.Adapter<AccountListAdapter.AccountListViewHolder> {
private static FragmentActivity activity;
private List<Account> accounts;
protected Fragment fragment;
public AccountListAdapter(FragmentActivity activity, List<Account> accounts) {
this.activity = activity;
this.accounts = accounts;
}
public class AccountListViewHolder extends RecyclerView.ViewHolder {
public String phoneNumber;
public final View mView;
public Account mItem;
public final TextView txtName;
public final TextView txtInitial;
public final ImageButton btnCall;
public AccountListViewHolder(View itemView) {
super(itemView);
mView = itemView;
txtName = (TextView) itemView.findViewById(R.id.txtName);
txtInitial = (TextView) itemView.findViewById(R.id.txtThumbnailCircle);
btnCall = (ImageButton) itemView.findViewById(R.id.callButtonAccount);
}
public void bind(Account account) {
mItem = account;
txtName.setText(account.getAccount_name());
txtInitial.setText(initial(account.getAccount_name()));
if(account.getAccount_phone_1()!=null){
phoneNumber=account.getAccount_phone_1();
btnCall.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
if (Build.VERSION.SDK_INT >= 23) {
if (ActivityCompat.checkSelfPermission(btnCall.getContext(),
android.Manifest.permission.CALL_PHONE)
== PackageManager.PERMISSION_GRANTED) {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+phoneNumber));
activity.startActivity(callIntent);
} else {
ActivityCompat.requestPermissions(activity, new String[]{android.Manifest.permission.CALL_PHONE}, 1);
}
}
}
});
}else{
btnCall.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Toast.makeText(activity,"This customer does not have any registered phone number",Toast.LENGTH_SHORT);
}
});
}
}
}
@Override
public AccountListViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.new_account_list_item, parent, false);
AccountListViewHolder viewHolder = new AccountListViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(final AccountListViewHolder holder, final int position) {
holder.mItem = accounts.get(position);
holder.bind(accounts.get(position));
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openDetail(accounts.get(position));
}
});
}
@Override
public int getItemCount() {
if (accounts == null || accounts.size() == 0)
return 0;
else
return accounts.size();
}
public void openDetail(Account account) {
fragment = new AccountDetailFragment();
Bundle bundle = new Bundle();
bundle.putString("uuidAccount", account.getUuid_account());
fragment.setArguments(bundle);
FragmentTransaction transaction = NewMainActivity.fragmentManager.beginTransaction();
transaction.setCustomAnimations(com.adins.mss.base.R.anim.activity_open_translate, com.adins.mss.base.R.anim.activity_close_scale, com.adins.mss.base.R.anim.activity_open_scale, com.adins.mss.base.R.anim.activity_close_translate);
transaction.replace(com.adins.mss.base.R.id.content_frame, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
private String initial(String initial) {
Pattern p = Pattern.compile("((^| )[A-Za-z])");
Matcher m = p.matcher(initial);
StringBuilder init = new StringBuilder();
int counter =0;
while (m.find() && counter<2) {
init.append(m.group().trim());
counter++;
}
return init.toString().toUpperCase();
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

View file

@ -0,0 +1,159 @@
package com.adins.mss.coll.fragments;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import com.adins.mss.base.dynamicform.DynamicFormActivity;
import com.adins.mss.base.util.Utility;
import com.adins.mss.coll.R;
import com.adins.mss.coll.fragments.view.DepositReportTransferView;
import com.adins.mss.coll.interfaces.OnCameraInAppListener;
import com.adins.mss.constant.Global;
import com.adins.mss.foundation.UserHelp.UserHelp;
import org.acra.ACRA;
import static com.adins.mss.constant.Global.SHOW_USERHELP_DELAY_DEFAULT;
/**
* Created by Aditya Purwa on 2/4/2015.
*/
public class DepositReportTransferFragment extends Fragment {
// private static final int REQUEST_FOR_CAMERA_CAPTURE = 4;
// private Spinner transferBySpinner;
// private View asBank;
// private View asCashier;
// private TextView txtNomorRekening;
// private TextView txtNamaBank;
// private TextView txtNamaKasir;
// private TextView txtBuktiTransfer;
// private EditText editNomorRekening;
// private EditText editNamaBank;
// private EditText editBatchId;
// private EditText editNamaKasir;
// private ImageView imageBukti;
// private Button buttonSelectPhoto;
// private Button buttonSend;
// private View view;
// protected static byte[] byteImage = null;
String total = "";
String batchId = "";
// protected static Bitmap image = null;
// protected static Bitmap tempImage = null;
private DepositReportTransferView view;
@Override
public void onDestroyView() {
super.onDestroyView();
Utility.freeMemory();
view.onDestroy();
// if(image!=null && !image.isRecycled()){
// image.recycle();
// image=null;
// }
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
view = new DepositReportTransferView(getActivity(), onCameraInAppListener);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
UserHelp.showAllUserHelp(DepositReportTransferFragment.this.getActivity(),DepositReportTransferFragment.this.getClass().getSimpleName());
}
}, SHOW_USERHELP_DELAY_DEFAULT);
return view.layoutInflater(inflater, container);
}
private OnCameraInAppListener onCameraInAppListener = new OnCameraInAppListener() {
@Override
public void onImageCapture(Intent intent, int requestCode) {
startActivityForResult(intent, requestCode);
}
};
// public void setLabel(){
// if(view!=null) {
// txtNomorRekening = (TextView) view.findViewById(R.id.txtNomorRekening);
// txtNamaBank = (TextView) view.findViewById(R.id.txtBankName);
// txtNamaKasir = (TextView) view.findViewById(R.id.txtCashierName);
// txtBuktiTransfer = (TextView) view.findViewById(R.id.txtBuktiTransfer);
//
// txtNomorRekening.setText(getActivity().getString(R.string.label_account_number_2));
// txtNamaBank.setText(getActivity().getString(R.string.label_bank_name_2));
// txtNamaKasir.setText(getActivity().getString(R.string.label_cashier_name_2));
// txtBuktiTransfer.setText(getActivity().getString(R.string.label_transfer_evidence_2));
// }
// }
@Override
public void onResume() {
super.onResume();
// setLabel();
}
@Override
public void onViewCreated(View mView, Bundle savedInstanceState) {
super.onViewCreated(mView, savedInstanceState);
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
total = getArguments().getString("TOTAL_DEPOSIT");
batchId = getArguments().getString(com.adins.mss.coll.tool.Constants.KEY_BUND_BATCHID);
view.total = total;
view.setBatchId(batchId);
view.onCreate();
}
@Override
public void onAttach(Context context) {
setHasOptionsMenu(true);
super.onAttach(context);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.mnGuide){
if(!Global.BACKPRESS_RESTRICTION) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
UserHelp.showAllUserHelp(DepositReportTransferFragment.this.getActivity(), DepositReportTransferFragment.this.getClass().getSimpleName());
}
}, SHOW_USERHELP_DELAY_DEFAULT);
}
}
return super.onOptionsItemSelected(item);
}
public static void onStartActivityResult(Intent intent, int requestCode) {
new DynamicFormActivity().startActivityForResult(intent, requestCode);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
view.onActivityResult(requestCode, resultCode, data);
}
public void onDestroy(){
super.onDestroy();
view.onDestroy();
}
}

View file

@ -0,0 +1,22 @@
package com.adins.mss.coll.commons;
import android.content.Context;
import android.widget.Toast;
import com.adins.mss.coll.R;
/**
* Created by Aditya Purwa on 3/4/2015.
*/
public class Toaster {
public static void error(Context context, Exception ex, String extraReason) {
Toast.makeText(context, context.getString(R.string.error_occure2, ex.getMessage(), extraReason), Toast.LENGTH_LONG)
.show();
}
public static void warning(Context context, String reason) {
Toast.makeText(context, context.getString(R.string.error_occure1,reason), Toast.LENGTH_LONG)
.show();
}
}

View file

@ -0,0 +1,12 @@
package com.adins.mss.base.todolist.form.todaysplan;
import com.adins.mss.dao.PlanTask;
import com.adins.mss.dao.TaskH;
import java.util.List;
public interface TodayPlanHandler {
void addToPlan(List<TaskH> planTasks);
List<PlanTask> getCurrentPlans();
int getAllPlansCount();
}

View file

@ -0,0 +1,28 @@
package com.adins.mss.base.util;
import com.google.gson.ExclusionStrategy;
import com.google.gson.FieldAttributes;
/**
* Created by gigin.ginanjar on 10/06/2016.
*/
public class MssGsonExclusionStrategy implements ExclusionStrategy {
private Class<?> typeToSkip;
public MssGsonExclusionStrategy() {
}
public MssGsonExclusionStrategy(Class<?> typeToSkip) {
this.typeToSkip = typeToSkip;
}
@Override
public boolean shouldSkipField(FieldAttributes fieldAttributes) {
return fieldAttributes.getAnnotation(ExcludeFromGson.class) != null;
}
@Override
public boolean shouldSkipClass(Class<?> aClass) {
return (aClass == typeToSkip);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1,129 @@
package com.adins.mss.odr;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.LoginActivity;
import com.adins.mss.base.NewMainActivity;
import com.adins.mss.base.dynamictheme.DynamicTheme;
import com.adins.mss.base.dynamictheme.ThemeLoader;
import com.adins.mss.base.login.DefaultLoginModel;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.GeneralParameter;
import com.adins.mss.foundation.db.dataaccess.GeneralParameterDataAccess;
import com.adins.mss.foundation.security.storepreferences.ObscuredSharedPreferences;
import com.adins.mss.odr.login.MODefaultLoginModel;
import com.google.firebase.analytics.FirebaseAnalytics;
import java.util.HashMap;
public class MOLoginActivity extends LoginActivity implements ThemeLoader.ColorSetLoaderCallback{
private FirebaseAnalytics screenName;
@Override
public void onCreate(Bundle savedInstanceState) {
//instantiate theme loader
themeLoader = new ThemeLoader(this);
defaultConfig = new HashMap<>();
defaultConfig.put("cipher_unsupported_device", Global.SQLITE_CIPHER_UNSUPPORTED);
this.fetchConfig();
PackageInfo pInfo = null;
String sqliteCipherException;
String deviceModel = Build.MODEL;
screenName = FirebaseAnalytics.getInstance(this);
try {
sqliteCipherException = GlobalData.getSharedGlobalData().getRemoteConfig().getString("cipher_unsupported_device");
pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
Global.APP_VERSION = pInfo.versionName;
Global.BUILD_VERSION = pInfo.versionCode;
Global.IS_DEV = BuildConfig.IS_DEV;
Global.FLAVORS = BuildConfig.IS_FLAVORS;
Global.IS_BYPASSROOT = BuildConfig.IS_BYPASSROOT;
Global.IS_DBENCRYPT = (!sqliteCipherException.contains(deviceModel)) && BuildConfig.IS_DBENCRYPT;
} catch (PackageManager.NameNotFoundException e1) {
e1.printStackTrace();
}
if (Global.AUTOLOGIN_ENABLE) {
NewMainActivity.setMainMenuClass(NewMOMainActivity.class);
ObscuredSharedPreferences sharedPref = ObscuredSharedPreferences.getPrefs(getApplicationContext(),
"GlobalData", Context.MODE_PRIVATE);
hasLogged = sharedPref.getBoolean("HAS_LOGGED", false);
if(hasLogged && GlobalData.getSharedGlobalData().getUser() != null){
super.onCreate(savedInstanceState);
NewMainActivity.InitializeGlobalDataIfError(getApplicationContext());
//check theme config.
String uuidUser = GlobalData.getSharedGlobalData().getUser() == null ? sharedPref.getString("UUID_USER", "") : GlobalData.getSharedGlobalData().getUser().getUuid_user();
GeneralParameter generalParameter = GeneralParameterDataAccess.getOne(this,
uuidUser,
Global.GS_THEME_CONFIG_ORDER);
if(generalParameter != null){
String urlConfig = generalParameter.getGs_value();
themeLoader.loadThemeFromUrl(urlConfig,this);
}
else {//go to main activity
Intent intent = new Intent(getApplicationContext(), NewMOMainActivity.class);
startActivity(intent);
finish();
}
}
else {//load directly login page and load saved theme
super.onCreate(savedInstanceState);
logo.setImageResource(com.adins.mss.base.R.drawable.icon_lead_in);
loadSavedTheme();
}
}else {//load directly login page and load saved theme
super.onCreate(savedInstanceState);
logo.setImageResource(com.adins.mss.base.R.drawable.icon_lead_in);
loadSavedTheme();
}
}
private void loadSavedTheme(){
if(themeLoader != null){
themeLoader.loadSavedColorSet(this);
}
}
@Override
protected DefaultLoginModel getNewDefaultLoginModel(Context context) {
return new MODefaultLoginModel(this);
}
@Override
public void onResume() {
super.onResume();
//Set Firebase screen name
screenName.setCurrentScreen(this,getString(R.string.screen_name_odr_login),null);
defaultConfig = new HashMap<>();
defaultConfig.put("cipher_unsupported_device", Global.SQLITE_CIPHER_UNSUPPORTED);
this.fetchConfig();
}
@Override
public void onHasLoaded(DynamicTheme dynamicTheme, boolean needUpdate) {//callback load from server
Intent intent = new Intent(getApplicationContext(), NewMOMainActivity.class);
startActivity(intent);
finish();
}
@Override
public void onHasLoaded(DynamicTheme dynamicTheme) {//callback load from local db
if(dynamicTheme != null && dynamicTheme.getThemeItemList().size() > 0){
applyColorTheme(dynamicTheme);
}
}
}