Advertisement
nigatigga

apk910

Sep 11th, 2014
278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.33 KB | None | 0 0
  1. package com.ibc.android.demo.appslist.app;
  2.  
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.content.SharedPreferences;
  6. import android.content.pm.PackageInfo;
  7. import android.content.pm.PackageManager;
  8. import android.graphics.Typeface;
  9. import android.graphics.drawable.Drawable;
  10. import android.view.LayoutInflater;
  11. import android.view.View;
  12. import android.view.View.OnClickListener;
  13. import android.view.ViewGroup;
  14. import android.widget.BaseAdapter;
  15. import android.widget.CheckBox;
  16. import android.widget.Filter;
  17. import android.widget.Filterable;
  18. import android.widget.TextView;
  19. import android.widget.Toast;
  20.  
  21. import com.spicycurryman.getdisciplined10.app.R;
  22.  
  23. import java.util.ArrayList;
  24. import java.util.HashSet;
  25. import java.util.List;
  26.  
  27. //
  28.  
  29. public class ApkAdapter extends BaseAdapter implements Filterable {
  30.  
  31.     SharedPreferences sharedPrefs;
  32.     SharedPreferences sharedPrefsapp;
  33.  
  34.     SharedPreferences endTimerPreferences;
  35.     long timerends;
  36.  
  37.  
  38.  
  39.     List<PackageInfo> packageList;
  40.  
  41.     Activity context;
  42.     PackageManager packageManager;
  43.     boolean[] itemChecked;
  44.     HashSet checked;
  45.     Filter mFilter;
  46.  
  47.     String PACKAGE_NAME;
  48.  
  49.  
  50.     public ApkAdapter(Activity context, List<PackageInfo> packageList,
  51.                       PackageManager packageManager) {
  52.         super();
  53.         this.context = context;
  54.  
  55.         this.packageList = packageList;
  56.         this.packageManager = packageManager;
  57.         itemChecked = new boolean[packageList.size()];
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.     }
  65.     private class ViewHolder {
  66.         TextView apkName;
  67.         CheckBox ck1;
  68.         TextView packageName;
  69.  
  70.  
  71.  
  72.     }
  73.  
  74.  
  75.  
  76.  
  77.     public int getCount() {
  78.         return packageList.size();
  79.     }
  80.  
  81.     public Object getItem(int position) {
  82.         return packageList.get(position);
  83.     }
  84.  
  85.     public long getItemId(int position) {
  86.         return 0;
  87.     }
  88.  
  89.     @Override
  90.     public View getView(final int position, View convertView, ViewGroup parent) {
  91.         final ViewHolder holder;
  92.  
  93.         LayoutInflater inflater = context.getLayoutInflater();
  94.  
  95.         if (convertView == null) {
  96.             convertView = inflater.inflate(R.layout.installed_apps, null);
  97.             holder = new ViewHolder();
  98.  
  99.             holder.apkName = (TextView) convertView
  100.                     .findViewById(R.id.appname);
  101.             holder.apkName.setTypeface(Typeface.createFromAsset(context.getAssets(), "fonts/miso.otf"));
  102.  
  103.             holder.ck1= (CheckBox)convertView
  104.                     .findViewById(R.id.checkBox1);
  105.             holder.packageName = (TextView) convertView.findViewById(R.id.app_package);
  106.  
  107.  
  108.  
  109.             convertView.setTag(holder);
  110.             //holder.ck1.setTag(packageList.get(position));
  111.  
  112.         } else {
  113.  
  114.             holder = (ViewHolder) convertView.getTag();
  115.         }
  116.  
  117.  
  118.  
  119.         // ViewHolder holder = (ViewHolder) convertView.getTag();
  120.         final PackageInfo packageInfo = (PackageInfo) getItem(position);
  121.  
  122.  
  123.  
  124.         Drawable appIcon = packageManager
  125.                 .getApplicationIcon(packageInfo.applicationInfo);
  126.  
  127.  
  128.  
  129.         // Make sure to define it again!
  130.         PACKAGE_NAME = packageInfo.packageName;
  131.  
  132.  
  133.         final String appName = packageManager.getApplicationLabel(
  134.                 packageInfo.applicationInfo).toString();
  135.         appIcon.setBounds(0, 0, 80, 80);
  136.         holder.apkName.setCompoundDrawables(appIcon, null, null, null);
  137.         holder.apkName.setCompoundDrawablePadding(15);
  138.         holder.apkName.setText(appName);
  139.         //holder.packageName.setText(PACKAGE_NAME);
  140.  
  141.  
  142.         holder.ck1.setChecked(false);
  143.  
  144.  
  145.         if (itemChecked[position])
  146.             holder.ck1.setChecked(true);
  147.         else
  148.             holder.ck1.setChecked(false);
  149.  
  150.  
  151.         checked = new HashSet();
  152.  
  153.         PACKAGE_NAME = packageInfo.packageName;
  154.         //Log.d("just here: ", PACKAGE_NAME);
  155.  
  156.         sharedPrefs = context.getSharedPreferences(context.getApplicationContext().getPackageName(), Context.MODE_PRIVATE);
  157.         sharedPrefsapp = context.getSharedPreferences("appdb", Context.MODE_PRIVATE);
  158.  
  159.  
  160.  
  161.  
  162.  
  163.         holder.ck1.setChecked(sharedPrefs.getBoolean(PACKAGE_NAME,false));
  164.  
  165.  
  166.  
  167.         endTimerPreferences = context.getSharedPreferences("endservice", Context.MODE_PRIVATE);
  168.         timerends= endTimerPreferences.getLong("endservice", 0);
  169.  
  170.  
  171.         if(System.currentTimeMillis() < timerends ) {
  172.             if(holder.ck1.isChecked()){
  173.                 holder.ck1.setClickable(false);
  174.                 holder.ck1.setEnabled(false);
  175.             }
  176.  
  177.  
  178.  
  179.         }
  180.  
  181.             holder.ck1.setOnClickListener(new OnClickListener() {
  182.  
  183.             @Override
  184.             public void onClick(View v) {
  185.  
  186.  
  187.  
  188.                 SharedPreferences.Editor editor = context.getSharedPreferences(context.getApplicationContext().getPackageName(), Context.MODE_PRIVATE).edit();
  189.                 SharedPreferences.Editor editorapp = context.getSharedPreferences("appdb", Context.MODE_PRIVATE).edit();
  190.  
  191.                 if (holder.ck1.isChecked()) {
  192.  
  193.                     itemChecked[position] = true;
  194.                     holder.ck1.setChecked(true);
  195.                     editor.putBoolean(packageInfo.packageName, true);
  196.                     editorapp.putString(packageInfo.packageName, packageInfo.packageName);
  197.  
  198.  
  199.  
  200.                     editor.apply();
  201.                     editorapp.apply();
  202.  
  203.                     // sharedPrefs = context.getSharedPreferences(context.getApplicationContext().getPackageName(), Context.MODE_PRIVATE);
  204.  
  205.  
  206.                 } else {
  207.                     itemChecked[position] = false;
  208.                     holder.ck1.setChecked(false);
  209.                     editor.putBoolean(packageInfo.packageName, false);
  210.                     editorapp.remove(packageInfo.packageName);
  211.  
  212.  
  213.                     editor.apply();
  214.                     editorapp.apply();
  215.                     //sharedPrefs = context.getSharedPreferences(context.getApplicationContext().getPackageName(), Context.MODE_PRIVATE);
  216.  
  217.  
  218.  
  219.  
  220.                 }
  221.  
  222.             }
  223.  
  224.  
  225.  
  226.         });
  227.  
  228.  
  229.  
  230.  
  231.  
  232.         return convertView;
  233.  
  234.     }
  235.  
  236.  
  237.     @Override
  238.     public Filter getFilter() {
  239.         if (mFilter == null) {
  240.             mFilter = new ItemsFilter();
  241.         }
  242.         return mFilter;
  243.     }
  244.  
  245.     private class ItemsFilter extends Filter {
  246.  
  247.         @Override
  248.         protected FilterResults performFiltering(CharSequence prefix) {
  249.             // TODO Auto-generated method stub
  250.  
  251.             List<PackageInfo> packageList_2 = packageList;
  252.             String prefixString = prefix.toString().toLowerCase();
  253.             FilterResults results = new FilterResults();
  254.             ArrayList<PackageInfo> FilteredList = new ArrayList<PackageInfo>();
  255.  
  256.             if (prefix == null || prefix.length() == 0) {
  257.                 results.values = packageList_2;
  258.                 results.count = packageList_2.size();
  259.                 return results;
  260.             }
  261.             for (int i = 0; i < packageList_2.size(); i++) {
  262.                 String filterText = prefix.toString().toLowerCase();
  263.                 try {
  264.                     PackageInfo data = packageList_2.get(i);
  265.                     if (data.applicationInfo
  266.                             .loadLabel(context.getApplicationContext().getPackageManager())
  267.                             .toString().toLowerCase().contains(filterText)) {
  268.                         FilteredList.add(data);
  269.                     } else if (data.packageName.contains(filterText)) {
  270.                         FilteredList.add(data);
  271.                     }
  272.                 } catch (Exception e) {
  273.                     Toast.makeText(context.getApplicationContext(),
  274.                             "exception e" + e.toString(),
  275.                             Toast.LENGTH_SHORT).show();
  276.                 }
  277.             }
  278.             results.values = FilteredList;
  279.             results.count = FilteredList.size();
  280.             return results;
  281.         }
  282.  
  283.         @SuppressWarnings("unchecked")
  284.         @Override
  285.         protected void publishResults(CharSequence constraint,
  286.                                       FilterResults results) {
  287.             Toast.makeText(context.getApplicationContext(),"result-0 "+results.count,
  288.                     Toast.LENGTH_SHORT).show();
  289.             packageList = (List<PackageInfo>) results.values;
  290.             notifyDataSetChanged();
  291.  
  292.         }
  293.     }
  294. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement