Android Open Source - esr-scanner Bank Profile






From Project

Back to project page esr-scanner.

License

The source code is released under:

Apache License

If you think the Android project esr-scanner listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package ch.luklanis.esscan.history;/*
 * Copyright 2013 Lukas Landis//from w  w w  .  j a  v a 2s  .c  o  m
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import org.json.JSONException;
import org.json.JSONObject;

import ch.luklanis.esscan.R;

public class BankProfile {

    public static final int INVALID_BANK_PROFILE_ID = -1;
    private String name;
    private String iban;
    private int executionDay;

    public BankProfile() {
        this(null);
    }

    public BankProfile(String jsonBankProfile) {

        name = "Default";
        iban = null;
        executionDay = 26;

        if (jsonBankProfile == null) {
            return;
        }

        JSONObject jsonObject;
        try {
            jsonObject = new JSONObject(jsonBankProfile);
        } catch (JSONException e) {
            e.printStackTrace();
            return;
        }

        if (jsonObject.has("name")) {
            try {
                this.name = jsonObject.getString("name");
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

        if (jsonObject.has("iban")) {
            try {
                this.iban = jsonObject.getString("iban");
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

        if (jsonObject.has("execDay")) {
            try {
                this.executionDay = jsonObject.getInt("execDay");
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }

    public BankProfile(String name, String iban, String executionDay) {
        this.name = name;
        this.iban = iban;
        this.executionDay = Integer.parseInt(executionDay);
    }

    @Override
    public String toString() {
        JSONObject jsonObject = new JSONObject();
        try {
            jsonObject.put("name", name);
            jsonObject.put("iban", iban);
            jsonObject.put("execDay", executionDay);
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return jsonObject.toString();
    }

    public String getName() {
        return name;
    }

    public String getIban(String ifNotSet) {
        return iban == null ? ifNotSet : iban;
    }

    public int getExecutionDay(int ifNotSet) {
        return executionDay == 26 ? ifNotSet : executionDay;
    }

    public static int validateIBAN(String iban) {
        iban = iban.replaceAll("[\\s\\r\\n]+", "");

        if (iban.equals("")) {
            return R.string.msg_own_iban_is_not_valid;
        }

        if (iban.length() != 21) {
            return R.string.msg_own_iban_is_not_valid;
        }

        iban = iban.substring(4, 21) + iban.substring(0, 4);

        StringBuilder ibanNumber = new StringBuilder(1000);

        for (int i = 0; i < iban.length(); i++) {
            char ibanChar = iban.charAt(i);

            if (ibanChar < '0' || ibanChar > '9') {
                int ibanLetter = 10 + (ibanChar - 'A');

                if (ibanLetter < 10 || ibanLetter > (('Z' - 'A') + 10)) {
                    return R.string.msg_own_iban_is_not_valid;
                }

                ibanNumber.append(ibanLetter);
            } else {
                ibanNumber.append(ibanChar);
            }
        }

        int lastEnd = 0;
        int subIbanLength = 9;
        int subIbanLengthWithModulo = subIbanLength - 2;
        int modulo97 = 97;

        int subIban = Integer.parseInt(ibanNumber.substring(lastEnd, subIbanLength));
        int lastModulo = subIban % modulo97;
        lastEnd = subIbanLength;

        try {
            while (lastEnd < ibanNumber.length()) {
                if ((lastEnd + subIbanLengthWithModulo) < ibanNumber.length()) {
                    int newEnd = lastEnd + subIbanLengthWithModulo;
                    subIban = Integer.parseInt(String.format("%s%s",
                            lastModulo,
                            ibanNumber.substring(lastEnd, newEnd)));
                    lastEnd = newEnd;
                } else {
                    subIban = Integer.parseInt(String.format("%s%s",
                            lastModulo,
                            ibanNumber.substring(lastEnd)));
                    lastEnd = ibanNumber.length();
                }

                lastModulo = subIban % modulo97;
            }
        } catch (NumberFormatException ex) {
            return R.string.msg_own_iban_is_not_valid;
        }

        if (lastModulo != 1) {
            return R.string.msg_own_iban_is_not_valid;
        }

        return 0;
    }

    public interface SaveBankProfileCallback {
        public int save();
    }
}




Java Source Code List

ch.luklanis.android.common.PlatformSupportManager.java
ch.luklanis.android.common.executor.AsyncTaskExecInterface.java
ch.luklanis.android.common.executor.AsyncTaskExecManager.java
ch.luklanis.android.common.executor.DefaultAsyncTaskExecInterface.java
ch.luklanis.android.common.executor.HoneycombAsyncTaskExecInterface.java
ch.luklanis.esscan.BeepManager.java
ch.luklanis.esscan.CaptureActivityHandler.java
ch.luklanis.esscan.CaptureActivity.java
ch.luklanis.esscan.DecodeHandler.java
ch.luklanis.esscan.DecodeThread.java
ch.luklanis.esscan.EsrBaseActivity.java
ch.luklanis.esscan.FinishListener.java
ch.luklanis.esscan.HelpActivity.java
ch.luklanis.esscan.IBase.java
ch.luklanis.esscan.Intents.java
ch.luklanis.esscan.LuminanceSource.java
ch.luklanis.esscan.OcrCharacterHelper.java
ch.luklanis.esscan.OcrInitAsyncTask.java
ch.luklanis.esscan.OcrRecognizeAsyncTask.java
ch.luklanis.esscan.OcrResultFailure.java
ch.luklanis.esscan.OcrResultText.java
ch.luklanis.esscan.OcrResult.java
ch.luklanis.esscan.PlanarYUVLuminanceSource.java
ch.luklanis.esscan.PreferencesActivity.java
ch.luklanis.esscan.ViewfinderView.java
ch.luklanis.esscan.camera.AutoFocusManager.java
ch.luklanis.esscan.camera.CameraConfigurationManager.java
ch.luklanis.esscan.camera.CameraManager.java
ch.luklanis.esscan.camera.PreviewCallback.java
ch.luklanis.esscan.camera.exposure.DefaultExposureInterface.java
ch.luklanis.esscan.camera.exposure.ExposureInterface.java
ch.luklanis.esscan.camera.exposure.ExposureManager.java
ch.luklanis.esscan.camera.exposure.FroyoExposureInterface.java
ch.luklanis.esscan.camera.open.DefaultOpenCameraInterface.java
ch.luklanis.esscan.camera.open.GingerbreadOpenCameraInterface.java
ch.luklanis.esscan.camera.open.OpenCameraInterface.java
ch.luklanis.esscan.camera.open.OpenCameraManager.java
ch.luklanis.esscan.codesend.Crypto.java
ch.luklanis.esscan.codesend.ESRSenderHttp.java
ch.luklanis.esscan.codesend.IEsrSender.java
ch.luklanis.esscan.dialogs.BankProfileDialogFragment.java
ch.luklanis.esscan.dialogs.BankProfileListDialog.java
ch.luklanis.esscan.dialogs.CancelOkDialog.java
ch.luklanis.esscan.dialogs.OkDialog.java
ch.luklanis.esscan.dialogs.OptionalOkDialog.java
ch.luklanis.esscan.history.BankProfile.java
ch.luklanis.esscan.history.DBHelper.java
ch.luklanis.esscan.history.GetHistoryAsyncTask.java
ch.luklanis.esscan.history.HistoryActivity.java
ch.luklanis.esscan.history.HistoryExportUpdateAsyncTask.java
ch.luklanis.esscan.history.HistoryFragment.java
ch.luklanis.esscan.history.HistoryItemAdapter.java
ch.luklanis.esscan.history.HistoryItem.java
ch.luklanis.esscan.history.HistoryManager.java
ch.luklanis.esscan.history.PsDetailActivity.java
ch.luklanis.esscan.history.PsDetailFragment.java
ch.luklanis.esscan.ime.ScannerIME.java
ch.luklanis.esscan.paymentslip.DTAFileCreator.java
ch.luklanis.esscan.paymentslip.EsIbanResult.java
ch.luklanis.esscan.paymentslip.EsIbanValidation.java
ch.luklanis.esscan.paymentslip.EsrResult.java
ch.luklanis.esscan.paymentslip.EsrValidation.java
ch.luklanis.esscan.paymentslip.PsResult.java
ch.luklanis.esscan.paymentslip.PsValidation.java