mirror of
https://github.com/freeedcom/ai-codereviewer.git
synced 2025-06-30 21:04:16 +00:00
add project adins
This commit is contained in:
parent
ad06ac5505
commit
f8f85d679d
5299 changed files with 625430 additions and 0 deletions
|
@ -0,0 +1 @@
|
|||
/build
|
|
@ -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 |
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
|
@ -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 |
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue