blob: ae5c636fd08d17bfe32ecff6e15871c9e06f8b2e [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 Lisione5b66022013-10-30 11:34:15 -040015import android.graphics.drawable.Drawable;
Alexandre Lision1a9e3b12013-09-16 11:06:07 -040016import android.os.RemoteException;
alision9f7a6ec2013-05-24 16:26:26 -040017import android.support.v13.app.FragmentStatePagerAdapter;
Alexandre Lisione5b66022013-10-30 11:34:15 -040018import android.text.Spannable;
19import android.text.SpannableStringBuilder;
20import android.text.style.ImageSpan;
alision9f7a6ec2013-05-24 16:26:26 -040021import android.util.Log;
22
alision9f7a6ec2013-05-24 16:26:26 -040023
Alexandre Lisione5b66022013-10-30 11:34:15 -040024public class SectionsPagerAdapter extends FragmentStatePagerAdapter implements PagerSlidingTabStrip.IconTabProvider {
25
alision9f7a6ec2013-05-24 16:26:26 -040026 private static final String TAG = SectionsPagerAdapter.class.getSimpleName();
27 Context mContext;
alision58356b72013-06-03 17:13:36 -040028 ArrayList<Fragment> fragments;
alision9f7a6ec2013-05-24 16:26:26 -040029
30 public SectionsPagerAdapter(Context c, FragmentManager fm) {
31 super(fm);
32 mContext = c;
alision58356b72013-06-03 17:13:36 -040033 fragments = new ArrayList<Fragment>();
34 fragments.add(new DialingFragment());
alision55c36cb2013-06-14 14:57:38 -040035 fragments.add(new HomeFragment());
alision58356b72013-06-03 17:13:36 -040036 fragments.add(new HistoryFragment());
alision9f7a6ec2013-05-24 16:26:26 -040037 }
38
39 @Override
40 public Fragment getItem(int i) {
alision9f7a6ec2013-05-24 16:26:26 -040041
alision58356b72013-06-03 17:13:36 -040042 return fragments.get(i);
alision9f7a6ec2013-05-24 16:26:26 -040043 }
44
alision9f7a6ec2013-05-24 16:26:26 -040045 public String getClassName(int i) {
46 String name;
47
48 switch (i) {
49 case 0:
50 name = DialingFragment.class.getName();
51 break;
52 case 1:
alision55c36cb2013-06-14 14:57:38 -040053 name = HomeFragment.class.getName();
alision9f7a6ec2013-05-24 16:26:26 -040054 break;
55 case 2:
56 name = HistoryFragment.class.getName();
57 break;
58
59 default:
60 Log.e(TAG, "getClassName: unknown fragment position " + i);
61 return null;
62 }
63
64 // Log.w(TAG, "getClassName: name=" + name);
65 return name;
66 }
67
68 @Override
69 public int getCount() {
Alexandre Lisionafd40e42013-10-15 13:48:37 -040070 return fragments.size();
alision9f7a6ec2013-05-24 16:26:26 -040071 }
Alexandre Lisione5b66022013-10-30 11:34:15 -040072
alision9f7a6ec2013-05-24 16:26:26 -040073 @Override
74 public CharSequence getPageTitle(int position) {
Alexandre Lisione5b66022013-10-30 11:34:15 -040075
alision9f7a6ec2013-05-24 16:26:26 -040076 switch (position) {
77 case 0:
Alexandre Lision6e8931e2013-09-19 16:49:34 -040078 return mContext.getString(R.string.title_section0).toUpperCase(Locale.getDefault());
alision9f7a6ec2013-05-24 16:26:26 -040079 case 1:
Alexandre Lision6e8931e2013-09-19 16:49:34 -040080 return mContext.getString(R.string.title_section1).toUpperCase(Locale.getDefault());
alision9f7a6ec2013-05-24 16:26:26 -040081 case 2:
Alexandre Lision6e8931e2013-09-19 16:49:34 -040082 return mContext.getString(R.string.title_section2).toUpperCase(Locale.getDefault());
alision9f7a6ec2013-05-24 16:26:26 -040083 default:
84 Log.e(TAG, "getPageTitle: unknown tab position " + position);
85 break;
86 }
87 return null;
88 }
Alexandre Lision1a9e3b12013-09-16 11:06:07 -040089
90 public void updateHome() {
91 try {
92 ((HomeFragment) fragments.get(1)).updateLists();
93 } catch (RemoteException e) {
94 e.printStackTrace();
Alexandre Lisione5b66022013-10-30 11:34:15 -040095 } catch (Exception e1) {
Alexandre Lision1a9e3b12013-09-16 11:06:07 -040096 e1.printStackTrace();
97 }
98 }
Alexandre Lisione5b66022013-10-30 11:34:15 -040099
100 @Override
101 public int getPageIconResId(int position) {
102 switch (position) {
103 case 0:
104 return R.drawable.ic_action_dial_pad_light;
105 case 1:
106 return R.drawable.ic_action_call;
107 case 2:
108 return R.drawable.ic_action_time;
109 default:
110 Log.e(TAG, "getPageTitle: unknown tab position " + position);
111 break;
112 }
113 return 0;
114 }
alision9f7a6ec2013-05-24 16:26:26 -0400115}