Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

issue in package that can not b installed #409

Open
mohibraja opened this issue Oct 20, 2017 · 0 comments
Open

issue in package that can not b installed #409

mohibraja opened this issue Oct 20, 2017 · 0 comments

Comments

@mohibraja
Copy link

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);

}

}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant