package com.ese2013.mensaunibe.notification;
import java.util.ArrayList;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.Switch;
import com.ese2013.mensaunibe.R;
import com.ese2013.mensaunibe.model.Model;
import com.ese2013.mensaunibe.notificationservice.MensaService;
/**
* @author group7
* @author Andreas Hohler
*/
public class NotificationFragment extends Fragment{
private View view;
private NotificationSettingsAdapter adapter;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.activity_notifications, container, false);
Switch sw = (Switch) view.findViewById(R.id.tgl_notifications);
sw.setChecked( Model.getInstance().loadNotificationStatus() );
updateAdapter();
return view;
}
private void updateAdapter() {
//List with keywords
ArrayList<String> keywords = Model.getInstance().loadNotificationKeywords();
adapter = new NotificationSettingsAdapter(getActivity(), R.layout.notification_list_layout, keywords);
ListView listView = (ListView) view.findViewById(R.id.listViewNotificationKeywords);
listView.setAdapter(adapter);
//Auto complete text field for keywords
AutoCompleteTextView ac = (AutoCompleteTextView) view.findViewById(R.id.settings_add_keyword);
ac.setOnKeyListener( new NotificationOnKeyEnter(this.getActivity(), adapter) );
ac.setAdapter( new NotificationAutoCompleteAdapter(getActivity(), android.R.layout.simple_dropdown_item_1line) );
//Add-Button for keywords
ImageButton add = (ImageButton) view.findViewById(R.id.settings_add_button);
add.setOnClickListener( new OnNotificationAddClicker(this.getActivity(), adapter, ac));
//Test notification button
Button test = (Button) view.findViewById(R.id.testNotification);
test.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
save();
getActivity().startService(new Intent(getActivity(), MensaService.class));
}
});
}
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
public void onPause() {
super.onPause();
save();
}
@Override
public void onStop() {
super.onStop();
save();
}
private void save() {
Switch sw = (Switch) view.findViewById(R.id.tgl_notifications);
assert sw != null;
boolean notifyStatus = sw.isChecked();
Model.getInstance().saveNotificationSettings(notifyStatus, adapter.getKeywords());
}
}