Android Open Source - PrepayCredit Basic Usage Item






From Project

Back to project page PrepayCredit.

License

The source code is released under:

GNU General Public License

If you think the Android project PrepayCredit 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

/*
 * This file is part of Prepay Credit for Android
 *//from  ww w .j  a  v  a2  s.  c om
 * Copyright  2014  Damien O'Reilly
 *
 * Prepay Credit for Android 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.
 * Prepay Credit for Android 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 Prepay Credit for Android.  If not, see <http://www.gnu.org/licenses/>.
 *
 * Report bugs or new features at: https://github.com/DamienOReilly/PrepayCredit
 * Contact the author at:          damienreilly@gmail.com
 */

package damo.three.ie.prepayusage;

import damo.three.ie.util.DateUtils;
import org.joda.time.DateTime;

import java.text.ParseException;
import java.util.List;

/**
 * Class to handle basic usage items. Quantity & expire date
 *
 * @author Damien O'Reilly
 */
public abstract class BasicUsageItem extends UsageItem {

    private long expireDate;

    protected BasicUsageItem(String itemName) {
        super(itemName);
    }

    public long getExpireDate() {
        return expireDate;
    }

    protected void setExpireDate(String expireDateStr) {
        expireDate = DateUtils.parseDate(expireDateStr);
    }

    public abstract String getQuantityFormatted();

    public abstract void setQuantityFormatted(String quantityStr) throws ParseException;

    public abstract Number getQuantity();

    public abstract String mergeQuantity(List<Number> toSum);

    /**
     * Just a method to check whether the usage item is expired past current date.
     *
     * @return boolean
     */
    public boolean isNotExpired() {
        DateTime now = new DateTime().withTimeAtStartOfDay();
        // +1 day as they expire at 00:00:00am of the next day really.
        return new DateTime(expireDate).plusDays(1).withTimeAtStartOfDay().compareTo(now) > 0;
    }

    /**
     * Sometimes I've seen items as "Won't expire" that look to be add-ons due to the 20 topup e.g. text, data
     * Normally these expire within 30 days. Not sure in what scenario they are non expireable (I know cash credit
     * mostly doesn't expire).
     *
     * @return boolean
     */
    public boolean isExpirable() {
        return expireDate != DateUtils.WONT_EXPIRE;
    }

    /**
     * Comparison, used for grouping of {@code BasicUsageItem} based on expire date only.
     *
     * @param o To compare against.
     * @return True of equal, otherwise false.
     */
    public int dateEquals(Object o) {
        BasicUsageItem that = (BasicUsageItem) o;
        return this.getExpireDate() > that.getExpireDate() ? 1 : this.getExpireDate() < that.getExpireDate() ? -1 : 0;
    }

    /**
     * Comparison, used for grouping of {@code BasicUsageItem} based on item type only.
     *
     * @param o To compare against.
     * @return True of equal, otherwise false.
     */
    @Override
    public boolean equals(Object o) {
        BasicUsageItem that = (BasicUsageItem) o;
        return this.getItemName().equals(that.getItemName());
    }
}




Java Source Code List

damo.three.ie.PrepayCreditApplication.java
damo.three.ie.activity.AboutActivity.java
damo.three.ie.activity.InternetExpirationActivity.java
damo.three.ie.activity.LoginActivity.java
damo.three.ie.activity.PrepayCreditActivity.java
damo.three.ie.activity.SettingsActivity.java
damo.three.ie.fragment.AboutFragment.java
damo.three.ie.fragment.ChangeLogFragment.java
damo.three.ie.fragment.SettingsFragment.java
damo.three.ie.fragment.UpdateFragment.java
damo.three.ie.net.EasySSLSocketFactory.java
damo.three.ie.net.EasyX509TrustManager.java
damo.three.ie.net.ProcessRequest.java
damo.three.ie.net.ThreeHttpClient.java
damo.three.ie.net.ThreeHttpParameters.java
damo.three.ie.prepay.ConnectivityReceiver.java
damo.three.ie.prepay.Constants.java
damo.three.ie.prepay.InternetAddonAlarmManagerReceiver.java
damo.three.ie.prepay.InternetAddonExpireReceiver.java
damo.three.ie.prepay.UpdateAlarmManagerReceiver.java
damo.three.ie.prepay.UpdateAsyncTask.java
damo.three.ie.prepay.UpdateReceiver.java
damo.three.ie.prepay.UpdateService.java
damo.three.ie.prepay.UsageFetcher.java
damo.three.ie.prepayusage.BasicUsageItemExpireSorter.java
damo.three.ie.prepayusage.BasicUsageItemTypeSorter.java
damo.three.ie.prepayusage.BasicUsageItem.java
damo.three.ie.prepayusage.BasicUsageItemsGrouped.java
damo.three.ie.prepayusage.ExpireGroupType.java
damo.three.ie.prepayusage.InternetUsageRegistry.java
damo.three.ie.prepayusage.ItemFactory.java
damo.three.ie.prepayusage.UsageItem.java
damo.three.ie.prepayusage.items.Data.java
damo.three.ie.prepayusage.items.FreeCash.java
damo.three.ie.prepayusage.items.InternetAddon.java
damo.three.ie.prepayusage.items.OutOfBundle.java
damo.three.ie.prepayusage.items.SkypeCalls.java
damo.three.ie.prepayusage.items.Texts.java
damo.three.ie.prepayusage.items.Three2ThreeCalls.java
damo.three.ie.prepayusage.items.TopUp.java
damo.three.ie.prepayusage.items.WeekendVoiceMinutes.java
damo.three.ie.ui.BasicUsageLayout.java
damo.three.ie.ui.ExtendedScrollView.java
damo.three.ie.ui.OutOfBundleLayout.java
damo.three.ie.ui.SlidingTabLayout.java
damo.three.ie.ui.SlidingTabStrip.java
damo.three.ie.ui.ViewPagerAdapter.java
damo.three.ie.util.AccountException.java
damo.three.ie.util.CustomTagHandler.java
damo.three.ie.util.DateUtils.java
damo.three.ie.util.FileUtils.java
damo.three.ie.util.HtmlUtilities.java
damo.three.ie.util.JSONUtils.java
damo.three.ie.util.NumberUtils.java
damo.three.ie.util.PrepayException.java
damo.three.ie.util.UsageUtils.java