blob: 4fea902371484528cddb534b60096866a09f75fe [file] [log] [blame]
Alexandre Lision064e1e02013-10-01 16:18:42 -04001package org.sflphone.adapters;
alision9f7a6ec2013-05-24 16:26:26 -04002
alision58356b72013-06-03 17:13:36 -04003import java.util.ArrayList;
Alexandre Lision6e8931e2013-09-19 16:49:34 -04004import java.util.Locale;
alision58356b72013-06-03 17:13:36 -04005
Alexandre Lisione5b66022013-10-30 11:34:15 -04006import org.sflphone.R;
Alexandre Lision064e1e02013-10-01 16:18:42 -04007import org.sflphone.fragments.DialingFragment;
8import org.sflphone.fragments.HistoryFragment;
9import org.sflphone.fragments.HomeFragment;
Alexandre Lisione5b66022013-10-30 11:34:15 -040010import org.sflphone.views.PagerSlidingTabStrip;
Alexandre Lision064e1e02013-10-01 16:18:42 -040011
alision9f7a6ec2013-05-24 16:26:26 -040012import android.app.Fragment;
13import android.app.FragmentManager;
14import android.content.Context;
Alexandre Lision1a9e3b12013-09-16 11:06:07 -040015import android.os.RemoteException;
alision9f7a6ec2013-05-24 16:26:26 -040016import android.support.v13.app.FragmentStatePagerAdapter;
17import android.util.Log;
18
alision9f7a6ec2013-05-24 16:26:26 -040019
Alexandre Lisione5b66022013-10-30 11:34:15 -040020public class SectionsPagerAdapter extends FragmentStatePagerAdapter implements PagerSlidingTabStrip.IconTabProvider {
21
alision9f7a6ec2013-05-24 16:26:26 -040022 private static final String TAG = SectionsPagerAdapter.class.getSimpleName();
23 Context mContext;
alision58356b72013-06-03 17:13:36 -040024 ArrayList<Fragment> fragments;
alision9f7a6ec2013-05-24 16:26:26 -040025
26 public SectionsPagerAdapter(Context c, FragmentManager fm) {
27 super(fm);
28 mContext = c;
alision58356b72013-06-03 17:13:36 -040029 fragments = new ArrayList<Fragment>();
30 fragments.add(new DialingFragment());
alision55c36cb2013-06-14 14:57:38 -040031 fragments.add(new HomeFragment());
alision58356b72013-06-03 17:13:36 -040032 fragments.add(new HistoryFragment());
alision9f7a6ec2013-05-24 16:26:26 -040033 }
34
35 @Override
36 public Fragment getItem(int i) {
alision9f7a6ec2013-05-24 16:26:26 -040037
alision58356b72013-06-03 17:13:36 -040038 return fragments.get(i);
alision9f7a6ec2013-05-24 16:26:26 -040039 }
40
alision9f7a6ec2013-05-24 16:26:26 -040041 public String getClassName(int i) {
42 String name;
43
44 switch (i) {
45 case 0:
46 name = DialingFragment.class.getName();
47 break;
48 case 1:
alision55c36cb2013-06-14 14:57:38 -040049 name = HomeFragment.class.getName();
alision9f7a6ec2013-05-24 16:26:26 -040050 break;
51 case 2:
52 name = HistoryFragment.class.getName();
53 break;
54
55 default:
56 Log.e(TAG, "getClassName: unknown fragment position " + i);
57 return null;
58 }
59
60 // Log.w(TAG, "getClassName: name=" + name);
61 return name;
62 }
63
64 @Override
65 public int getCount() {
Alexandre Lisionafd40e42013-10-15 13:48:37 -040066 return fragments.size();
alision9f7a6ec2013-05-24 16:26:26 -040067 }
Alexandre Lisione5b66022013-10-30 11:34:15 -040068
alision9f7a6ec2013-05-24 16:26:26 -040069 @Override
70 public CharSequence getPageTitle(int position) {
Alexandre Lisione5b66022013-10-30 11:34:15 -040071
alision9f7a6ec2013-05-24 16:26:26 -040072 switch (position) {
73 case 0:
Alexandre Lision6e8931e2013-09-19 16:49:34 -040074 return mContext.getString(R.string.title_section0).toUpperCase(Locale.getDefault());
alision9f7a6ec2013-05-24 16:26:26 -040075 case 1:
Alexandre Lision6e8931e2013-09-19 16:49:34 -040076 return mContext.getString(R.string.title_section1).toUpperCase(Locale.getDefault());
alision9f7a6ec2013-05-24 16:26:26 -040077 case 2:
Alexandre Lision6e8931e2013-09-19 16:49:34 -040078 return mContext.getString(R.string.title_section2).toUpperCase(Locale.getDefault());
alision9f7a6ec2013-05-24 16:26:26 -040079 default:
80 Log.e(TAG, "getPageTitle: unknown tab position " + position);
81 break;
82 }
83 return null;
84 }
Alexandre Lision1a9e3b12013-09-16 11:06:07 -040085
86 public void updateHome() {
87 try {
88 ((HomeFragment) fragments.get(1)).updateLists();
89 } catch (RemoteException e) {
90 e.printStackTrace();
Alexandre Lisione5b66022013-10-30 11:34:15 -040091 } catch (Exception e1) {
Alexandre Lision1a9e3b12013-09-16 11:06:07 -040092 e1.printStackTrace();
93 }
94 }
Alexandre Lisione5b66022013-10-30 11:34:15 -040095
96 @Override
97 public int getPageIconResId(int position) {
98 switch (position) {
99 case 0:
100 return R.drawable.ic_action_dial_pad_light;
101 case 1:
102 return R.drawable.ic_action_call;
103 case 2:
104 return R.drawable.ic_action_time;
105 default:
106 Log.e(TAG, "getPageTitle: unknown tab position " + position);
107 break;
108 }
109 return 0;
110 }
alision9f7a6ec2013-05-24 16:26:26 -0400111}