Home | History | Annotate | Download | only in com.example.android.appusagestatistics
      1 /*
      2 * Copyright (C) 2014 The Android Open Source Project
      3 *
      4 * Licensed under the Apache License, Version 2.0 (the "License");
      5 * you may not use this file except in compliance with the License.
      6 * You may obtain a copy of the License at
      7 *
      8 *      http://www.apache.org/licenses/LICENSE-2.0
      9 *
     10 * Unless required by applicable law or agreed to in writing, software
     11 * distributed under the License is distributed on an "AS IS" BASIS,
     12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 * See the License for the specific language governing permissions and
     14 * limitations under the License.
     15 */
     16 
     17 package com.example.android.appusagestatistics;
     18 
     19 import android.support.v7.widget.RecyclerView;
     20 import android.view.LayoutInflater;
     21 import android.view.View;
     22 import android.view.ViewGroup;
     23 import android.widget.ImageView;
     24 import android.widget.TextView;
     25 
     26 import java.text.DateFormat;
     27 import java.text.SimpleDateFormat;
     28 import java.util.ArrayList;
     29 import java.util.Date;
     30 import java.util.List;
     31 
     32 /**
     33  * Provide views to RecyclerView with the directory entries.
     34  */
     35 public class UsageListAdapter extends RecyclerView.Adapter<UsageListAdapter.ViewHolder> {
     36 
     37     private List<CustomUsageStats> mCustomUsageStatsList = new ArrayList<>();
     38     private DateFormat mDateFormat = new SimpleDateFormat();
     39 
     40     /**
     41      * Provide a reference to the type of views that you are using (custom ViewHolder)
     42      */
     43     public static class ViewHolder extends RecyclerView.ViewHolder {
     44         private final TextView mPackageName;
     45         private final TextView mLastTimeUsed;
     46         private final ImageView mAppIcon;
     47 
     48         public ViewHolder(View v) {
     49             super(v);
     50             mPackageName = (TextView) v.findViewById(R.id.textview_package_name);
     51             mLastTimeUsed = (TextView) v.findViewById(R.id.textview_last_time_used);
     52             mAppIcon = (ImageView) v.findViewById(R.id.app_icon);
     53         }
     54 
     55         public TextView getLastTimeUsed() {
     56             return mLastTimeUsed;
     57         }
     58 
     59         public TextView getPackageName() {
     60             return mPackageName;
     61         }
     62 
     63         public ImageView getAppIcon() {
     64             return mAppIcon;
     65         }
     66     }
     67 
     68     public UsageListAdapter() {
     69     }
     70 
     71     @Override
     72     public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
     73         View v = LayoutInflater.from(viewGroup.getContext())
     74                 .inflate(R.layout.usage_row, viewGroup, false);
     75         return new ViewHolder(v);
     76     }
     77 
     78     @Override
     79     public void onBindViewHolder(ViewHolder viewHolder, final int position) {
     80         viewHolder.getPackageName().setText(
     81                 mCustomUsageStatsList.get(position).usageStats.getPackageName());
     82         long lastTimeUsed = mCustomUsageStatsList.get(position).usageStats.getLastTimeUsed();
     83         viewHolder.getLastTimeUsed().setText(mDateFormat.format(new Date(lastTimeUsed)));
     84         viewHolder.getAppIcon().setImageDrawable(mCustomUsageStatsList.get(position).appIcon);
     85     }
     86 
     87     @Override
     88     public int getItemCount() {
     89         return mCustomUsageStatsList.size();
     90     }
     91 
     92     public void setCustomUsageStatsList(List<CustomUsageStats> customUsageStats) {
     93         mCustomUsageStatsList = customUsageStats;
     94     }
     95 }