navasmdc / MaterialDesignLibrary

This is a library with components of Android L to you use in android 2.2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

issue in package that can not b installed

mohibraja opened this issue · comments

import com.gc.materialdesign.views.CheckView;

The above package can not be imported although this library,s other functions are working. Especially the following function is not working

setCheckedNoAnim()

now here i am pasting my actual code

/*******************************************************************************

  • Copyright (c) 2015 btows.com.
  • 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.cleanwiz.applock.ui.adapter;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
import android.graphics.drawable.AnimationDrawable;
import android.os.AsyncTask;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.cleanwiz.applock.AppLockApplication;
import com.cleanwiz.applock.R;
import com.cleanwiz.applock.data.CommLockInfo;
import com.cleanwiz.applock.service.CommLockInfoService;
import com.cleanwiz.applock.utils.Cn2Spell;
import com.gc.materialdesign.views.CheckView;
import com.gc.materialdesign.views.CustomView;
import com.umeng.analytics.MobclickAgent;

import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;

public class LockAdapter extends BaseAdapter {

private Activity mContext;
private CommLockInfoService lockService;
private List<CommLockInfo> lockInfos;
private LayoutInflater mInflater;
private PackageManager pkgMgr;

private AnimationDrawable animLock;
private AnimationDrawable animUnlock;
private Resources mResources;

private AppLocker aLocker;

public LockAdapter(Activity mContext) {
    super();
    this.mContext = mContext;
    mInflater = LayoutInflater.from(mContext);
    mResources = mContext.getResources();

    initData();
}

private void initData() {
    pkgMgr = mContext.getPackageManager();
    lockService = new CommLockInfoService(mContext);
    lockService.getCommLockInfoDaoInstance();
    lockInfos = lockService.getAllCommLockInfos();
    checkLockInfos();
    aLocker = new AppLocker() {

        @Override
        public void unlockApp(String pkgName) {
            lockService.unlockCommApplication(pkgName);
        }

        @Override
        public void lockApp(String pkgName) {
            lockService.lockCommApplication(pkgName);
        }
    };
}

@Override
public int getCount() {
    return lockInfos.size();
}

@Override
public CommLockInfo getItem(int position) {
    return lockInfos.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        convertView = buildItemView();
    }
    ViewHolder vh = (ViewHolder) convertView.getTag();
    CommLockInfo lock = getItem(position);
    ApplicationInfo appInfo = lock.getAppInfo();
    if (appInfo != null) {
        vh.ivIcon.setImageDrawable(pkgMgr.getApplicationIcon(appInfo));
        vh.tvTitle.setText(pkgMgr.getApplicationLabel(appInfo));
    }

    vh.ivLock.setCheckedNoAnim(lock.getIsLocked());
    vh.item.setTag(vh);
    vh.item.setOnClickListener(new ItemClick(lock));
    return convertView;
}

private void checkLockInfos() {
    new AsyncTask<Void, Void, Void>() {
        @Override
        protected Void doInBackground(Void... params) {
            for (int i = 0; i < lockInfos.size(); i++) {
                CommLockInfo lock = lockInfos.get(i);
                ApplicationInfo appInfo = null;
                try {
                    appInfo = pkgMgr.getApplicationInfo(lock.getPackageName(),
                            PackageManager.GET_UNINSTALLED_PACKAGES);
                } catch (NameNotFoundException e) {
                    e.printStackTrace();
                    lockInfos.remove(lock);
                    continue;
                }
                if (appInfo == null || pkgMgr.getApplicationIcon(appInfo) == null) {
                    lockInfos.remove(lock);
                    continue;
                } else {
                    lock.setAppInfo(appInfo);
                }
                if (i % 7 == 0) {
                    mContext.runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            notifyDataSetChanged();
                        }
                    });
                }
            }
            if (sortType == SORT_DEFAULT)
                Collections.sort(lockInfos, AppLockApplication.commLockInfoComparator);
            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            if (sortType == SORT_DEFAULT)
                notifyDataSetChanged();
        }
    }.execute();
}

@SuppressLint("InflateParams")
private View buildItemView() {
    View view = mInflater.inflate(R.layout.item_applock, null);
    ViewHolder vh = new ViewHolder();
    vh.item = view.findViewById(R.id.layout_item);
    vh.ivIcon = (ImageView) view.findViewById(R.id.iv_icon);
    vh.tvTitle = (TextView) view.findViewById(R.id.tv_title);
    vh.tvDetail = (TextView) view.findViewById(R.id.tv_detail);
    vh.ivLock = (CheckView) view.findViewById(R.id.iv_lock);
    view.setTag(vh);
    return view;
}

public static final int SORT_DEFAULT = 1;
public static final int SORT_ALPHA = 2;
public static final int SORT_INSTALL = 3;

private Comparator<CommLockInfo> alphaSort = new Comparator<CommLockInfo>() {
    @Override
    public int compare(CommLockInfo lhs, CommLockInfo rhs) {
        if (lhs.getAppInfo() != null && rhs.getAppInfo() != null)
            return Cn2Spell.converterToSpell(String.valueOf(lhs.getAppInfo().loadLabel(pkgMgr)))
                    .compareToIgnoreCase(Cn2Spell.converterToSpell(String.valueOf(rhs.getAppInfo().loadLabel(pkgMgr))));
        return 0;
    }
};
private Comparator<CommLockInfo> installSort = new Comparator<CommLockInfo>() {
    @Override
    public int compare(CommLockInfo lhs, CommLockInfo rhs) {
        try {
            return (int) (pkgMgr.getPackageInfo(lhs.getPackageName(), 0).firstInstallTime - pkgMgr.getPackageInfo(rhs.getPackageName(), 0).firstInstallTime);
        } catch (NameNotFoundException e) {
            e.printStackTrace();
        }
        return 0;
    }
};

private int sortType = SORT_DEFAULT;
public void onSort(int type) {
    sortType = type;
    if (lockInfos != null) {
        switch (type) {
            case SORT_DEFAULT:
                lockInfos = lockService.getAllCommLockInfos();
                checkLockInfos();
                break;
            case SORT_ALPHA:
                Collections.sort(lockInfos, alphaSort);
                break;
            case SORT_INSTALL:
                Collections.sort(lockInfos, installSort);
                break;
        }
        notifyDataSetChanged();
    }
}

class ViewHolder {

    View item;
    ImageView ivIcon;
    TextView tvTitle;
    TextView tvDetail;
    CheckView ivLock;

}

class ItemClick implements OnClickListener {

    private CommLockInfo lockInfo;

    public ItemClick(CommLockInfo lockInfo) {
        super();
        this.lockInfo = lockInfo;
    }

    @Override
    public void onClick(View v) {
        ViewHolder vh = (ViewHolder) v.getTag();
        if (lockInfo.getIsLocked()) {
            vh.ivLock.setChecked(false);
            aLocker.unlockApp(lockInfo.getPackageName());
            reportEvent(UnlockEvent, lockInfo.getPackageName());
        } else {
            vh.ivLock.setChecked(true);
            aLocker.lockApp(lockInfo.getPackageName());
            reportEvent(LockEvent, lockInfo.getPackageName());
        }

    }

}

private static final String LockEvent = "lock";
private static final String UnlockEvent = "unlock";

public void reportEvent(String event, String packageName) {
    HashMap<String, String> map = new HashMap<String, String>();
    map.put("pkg", packageName);
    MobclickAgent.onEvent(mContext, event, map);
}

public interface AppLocker {

    public void lockApp(String pkgName);

    public void unlockApp(String pkgName);

}

}