package com.tierep.notificationanalyser.ui;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import com.j256.ormlite.android.apptools.OpenHelperManager;
import com.tierep.notificationanalyser.NotificationAppView;
import com.tierep.notificationanalyser.NotificationAppViewAdapter;
import com.tierep.notificationanalyser.R;
import com.tierep.notificationanalyser.models.DatabaseHelper;
import com.tierep.notificationanalyser.models.NotificationItemDao;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
public class TodayFragment extends Fragment {
private DatabaseHelper databaseHelper = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar actionBar = getActivity().getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View main = inflater.inflate(R.layout.fragment_today, container, false);
View viewHeader = inflater.inflate(R.layout.list_header_day_count, null);
ListView listView = (ListView) main.findViewById(R.id.list_view);
listView.addHeaderView(viewHeader, null, false);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(getActivity(), AppDetail.class);
NotificationAppView clickedApp = (NotificationAppView) adapterView.getAdapter().getItem(i);
intent.putExtra(AppDetail.EXTRA_PACKAGENAME, clickedApp.AppName);
intent.putExtra(AppDetail.EXTRA_INTERVALTYPE, AppDetail.FLAG_VIEW_DAILY);
intent.putExtra(AppDetail.EXTRA_DATESTRING, new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
startActivity(intent);
}
});
return main;
}
public DatabaseHelper getDatabaseHelper() {
if (databaseHelper == null) {
databaseHelper = OpenHelperManager.getHelper(getActivity(), DatabaseHelper.class);
}
return databaseHelper;
}
@Override
public void onResume() {
super.onResume();
List<NotificationAppView> list = new LinkedList<NotificationAppView>();
try {
NotificationItemDao dao = getDatabaseHelper().getNotificationDao();
list = dao.getOverviewToday();
} catch (SQLException e) {
e.printStackTrace();
}
int totalCount = 0;
for (NotificationAppView aList : list) {
totalCount += aList.Notifications;
}
TextView titleCounter = (TextView) getActivity().findViewById(R.id.title_counter);
titleCounter.setText(Integer.toString(totalCount));
TextView titleCounterSuffix = (TextView) getActivity().findViewById(R.id.title_counter_suffix);
if (totalCount == 1) {
titleCounterSuffix.setText(R.string.title_counter_suffix_single);
} else {
titleCounterSuffix.setText(R.string.title_counter_suffix_plural);
}
NotificationAppViewAdapter adapter = new NotificationAppViewAdapter(getActivity(), list);
ListView listView = (ListView) getActivity().findViewById(R.id.list_view);
listView.setAdapter(adapter);
}
@Override
public void onDestroy() {
super.onDestroy();
if (databaseHelper != null) {
OpenHelperManager.releaseHelper();
databaseHelper = null;
}
}
}