com.aegiswallet.objects.SMSTransactionPojo.java Source code

Java tutorial

Introduction

Here is the source code for com.aegiswallet.objects.SMSTransactionPojo.java

Source

/*
 * Aegis Bitcoin Wallet - The secure Bitcoin wallet for Android
 * Copyright 2014 Bojan Simic and specularX.co, designed by Reuven Yamrom
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package com.aegiswallet.objects;

import android.util.Base64;
import android.util.Log;

import com.aegiswallet.utils.BasicUtils;
import com.aegiswallet.utils.Constants;
import com.aegiswallet.utils.NfcUtils;

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

import java.math.BigInteger;
import java.util.Calendar;
import java.util.Date;

/**
 * Created by bsimic on 7/3/14.
 */
public class SMSTransactionPojo {

    private String TAG = this.getClass().getName();

    private String phoneNumber;
    private String name;
    private BigInteger amount;
    private String btcAddress;
    private long timestamp;
    private int status;
    private String tag;

    public SMSTransactionPojo(String phoneNumber, String name, BigInteger amount, String btcAddress, int status,
            String tag) {

        if (phoneNumber == null)
            phoneNumber = "";
        if (name == null)
            name = "";
        if (btcAddress == null)
            btcAddress = "";
        if (tag == null)
            tag = "";

        this.phoneNumber = phoneNumber;
        this.name = name;
        this.amount = amount;
        this.btcAddress = btcAddress;
        this.timestamp = Calendar.getInstance().getTimeInMillis();
        this.status = status;
        this.tag = tag;
    }

    public SMSTransactionPojo(String base64EncodedJSONString) {
        byte[] decoded = Base64.decode(base64EncodedJSONString.getBytes(), Base64.NO_WRAP);
        String jsonString = new String(decoded);

        try {
            JSONObject object = new JSONObject(jsonString);

            this.phoneNumber = object.getString("number");
            this.name = object.getString("name");
            this.amount = new BigInteger(object.getString("amount"));
            this.btcAddress = object.getString("address");
            this.timestamp = new Long(object.getString("timestamp")).longValue();
            this.status = new Integer(object.getString("status")).intValue();
            this.tag = object.getString("tag");

        } catch (JSONException e) {
            Log.d(TAG, e.getMessage());
        }
    }

    public String getPhoneNumber() {
        return this.phoneNumber;
    }

    public String getName() {
        return this.name;
    }

    public BigInteger getAmount() {
        return this.amount;
    }

    public String getBtcAddress() {
        return this.btcAddress;
    }

    public long getTimestamp() {
        return this.timestamp;
    }

    public int getStatus() {
        return this.status;
    }

    public String getTag() {
        return this.tag;
    }

    public String toJSON() {

        JSONObject jsonObject = new JSONObject();
        try {
            jsonObject.put("number", getPhoneNumber());
            jsonObject.put("name", getName());
            jsonObject.put("amount", getAmount());
            jsonObject.put("address", getBtcAddress());
            jsonObject.put("timestamp", getTimestamp());
            jsonObject.put("status", getStatus());
            jsonObject.put("tag", getTag());

            return jsonObject.toString();
        } catch (JSONException e) {
            e.printStackTrace();
            return "";
        }

    }

    public String getJSONBase64() {
        byte[] encoded = Base64.encode(toJSON().getBytes(), Base64.NO_WRAP);
        return new String(encoded);
    }

    public void setBtcAddress(String address) {
        this.btcAddress = address;
    }

    public void setStatus(int status) {
        this.status = status;
    }
}