AuthUtils.java 3.17 KB
package com.gimi.common.cinema.utils;

import android.content.Context;
import android.content.SharedPreferences;

/**
 * Created by wugian on 2016/12/19
 */

public class AuthUtils {
    private static final long DEFAULT_OFFLINE_TIME = 3 * 24 * 60 * 60;//seconds

    public static boolean checkOfflineAuthTime(Context context) {
        SharedPreferences sharedPreferences = Utils.getSp(context);

        String successTime = Utils.getString(sharedPreferences, "agent-info-success", "0");
        String distTimeStr = Utils.getString(sharedPreferences, "agent-dist-time", "0");
        String addTimeStr = Utils.getString(sharedPreferences, "agent-add-time", "0");


        long l = Long.parseLong(successTime);
        long distTime = Long.parseLong(distTimeStr);
        long addTime = Long.parseLong(addTimeStr);


        int offlineAccess = Utils.getInt(sharedPreferences, "offline-access-count", 0);
        if (l - distTime > 7 * 24 * 60 * 60) {//超过7天过期
            return false;
        }
        if (l == 0 || distTime == 0 || addTime == 0) {
            return true;//初装
        }

        if (addTime - System.currentTimeMillis() / 1000 > 60 * 60 * 24 * 365 * 30) { //more tha  30 years before add time
            if ((l < distTime && l > addTime)) {
                return true;
            }
        }

        if (l < distTime && l > addTime) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * if un-auth-count > 7000 finish else show promote
     *
     * @param context
     * @return
     */
    public static boolean isFinish(Context context) {

        SharedPreferences sharedPreferences = Utils.getSp(context);

        String successTime = Utils.getString(sharedPreferences, "agent-info-success", "0");
        String distTimeStr = Utils.getString(sharedPreferences, "agent-dist-time", "0");

        long l = Long.parseLong(successTime);
        long distTime = Long.parseLong(distTimeStr);

        return l - distTime >= 7 * 24 * 60 * 60;
    }


    /**
     * @param context
     * @return
     */
    private static void addAuth(Context context) {
        SharedPreferences sharedPreferences = Utils.getSp(context);
        int auth = Utils.getInt(sharedPreferences, "un-auth-count", 0);
        Utils.saveInt(sharedPreferences, "un-auth-count", ++auth);
    }

    /**
     * @param context
     * @return
     */
    private static void resetAuth(Context context) {
        SharedPreferences sharedPreferences = Utils.getSp(context);
        Utils.saveInt(sharedPreferences, "un-auth-count", 0);
    }

    private static void addOfflineAccessCount(Context context) {
        SharedPreferences sharedPreferences = Utils.getSp(context);
        int auth = Utils.getInt(sharedPreferences, "offline-access-count", 0);
        Utils.saveInt(sharedPreferences, "offline-access-count", ++auth);
    }

    /**
     * 处于断网,每访问一次多加一次线下访问,大到一定程度,授权失败
     *
     * @param context
     */
    private static void resetOfflineAccessCount(Context context) {
        SharedPreferences sharedPreferences = Utils.getSp(context);
        Utils.saveInt(sharedPreferences, "offline-access-count", 0);
    }
}