package ru.bsuirhelper.android.ui.schedule;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.view.*;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.analytics.tracking.android.EasyTracker;
import com.google.analytics.tracking.android.Fields;
import com.google.analytics.tracking.android.MapBuilder;
import ru.bsuirhelper.android.ApplicationSettings;
import ru.bsuirhelper.android.R;
import ru.bsuirhelper.android.appwidget.ScheduleWidgetProviderBig;
import ru.bsuirhelper.android.core.schedule.ScheduleManager;
import ru.bsuirhelper.android.core.schedule.StudentGroup;
import ru.bsuirhelper.android.ui.DialogFragmentAddGroup;
import ru.bsuirhelper.android.ui.DownloadScheduleTask;
import java.util.ArrayList;
/**
* Created by Влад on 12.10.13.
*/
public class FragmentManagerGroups extends Fragment implements DownloadScheduleTask.CallBack {
private ScheduleManager mScheduleManager;
private ListView mListGroups;
private TextView mTextViewNotification;
public static final String TITLE = "Расписание";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mScheduleManager = ScheduleManager.getInstance(getActivity());
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View fragmentContent = inflater.inflate(R.layout.activity_managerschedule, container, false);
mTextViewNotification = (TextView) fragmentContent.findViewById(R.id.textview_groupsarenotadded);
mListGroups = (ListView) fragmentContent.findViewById(R.id.listview_groups);
refreshListGroup();
mListGroups.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
StudentGroup group = (StudentGroup) mListGroups.getAdapter().getItem(position);
ApplicationSettings.getInstance(view.getContext()).putString("defaultgroup", group.groupId);
updateAppWidget();
Bundle args = new Bundle();
args.putString("groupId", group.groupId);
FragmentManager fm = getActivity().getSupportFragmentManager();
Fragment fragmentSchedule = new FragmentSchedule();
fragmentSchedule.setArguments(args);
fm.beginTransaction().replace(R.id.content_frame, fragmentSchedule).commit();
}
});
return fragmentContent;
}
@Override
public void onResume() {
super.onResume();
if (ApplicationSettings.getInstance(getActivity()).getBoolean("firststart", true)) {
// openDrawerMenu();
}
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// Inflate the menu items for use in the action bar
inflater.inflate(R.menu.menu_managergroups_fragment_actions, menu);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_startdeletegroups:
Intent intent = new Intent(getActivity(), ActivityDeleteGroups.class);
startActivity(intent);
return true;
case R.id.action_addgroup:
DialogFragmentAddGroup dialog = new DialogFragmentAddGroup(this, getActivity());
dialog.show(getActivity().getSupportFragmentManager(), "");
return true;
default:
return super.onOptionsItemSelected(item);
}
}
void refreshListGroup() {
ArrayList<StudentGroup> alGroups = mScheduleManager.getGroups();
StudentGroup[] groups = new StudentGroup[alGroups.size()];
groups = alGroups.toArray(groups);
GroupsViewAdapter vaGroups = new GroupsViewAdapter(getActivity(), groups, R.layout.view_group);
if (vaGroups.getCount() != 0) {
mListGroups.setAdapter(vaGroups);
mTextViewNotification.setVisibility(View.INVISIBLE);
} else {
mTextViewNotification.setVisibility(View.VISIBLE);
}
}
private void updateAppWidget() {
Intent i = new Intent(getActivity(), ScheduleWidgetProviderBig.class);
i.setAction(ScheduleWidgetProviderBig.UPDATE_ACTION);
getActivity().sendBroadcast(i);
}
@Override
public void onPostExecute() {
Toast.makeText(getActivity(), "Расписание добавлено", Toast.LENGTH_SHORT);
refreshListGroup();
}
@Override
public void onStart() {
super.onStart();
EasyTracker tracker = EasyTracker.getInstance(getActivity());
tracker.set(Fields.SCREEN_NAME, TITLE);
tracker.send(MapBuilder.createAppView().build());
}
}