* #36914: fix backstack issues, change selector of app sections
diff --git a/src/org/sflphone/client/HomeActivity.java b/src/org/sflphone/client/HomeActivity.java
index f479a61..70f18a4 100644
--- a/src/org/sflphone/client/HomeActivity.java
+++ b/src/org/sflphone/client/HomeActivity.java
@@ -333,7 +333,7 @@
fContent = getSupportFragmentManager().findFragmentByTag(entry.getName());
if(fContent == null)
Log.i(TAG, "Null frag");
- getSupportFragmentManager().popBackStack();
+ getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
return;
}
@@ -685,7 +685,10 @@
if (fContent instanceof HomeFragment)
break;
-
+
+ if(getSupportFragmentManager().getBackStackEntryCount() == 0)
+ break;
+
BackStackEntry entry = getSupportFragmentManager().getBackStackEntryAt(0);
fContent = getSupportFragmentManager().findFragmentByTag(entry.getName());
getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
@@ -694,15 +697,15 @@
case 1:
if (fContent instanceof AccountsManagementFragment)
break;
- Log.i(TAG, "BackStackEntries: " + getSupportFragmentManager().getBackStackEntryCount());
+
fContent = new AccountsManagementFragment();
- getSupportFragmentManager().beginTransaction().replace(R.id.main_frame, fContent, "Home").addToBackStack("Home").commit();
+ getSupportFragmentManager().beginTransaction().replace(R.id.main_frame, fContent, "Accounts").addToBackStack("Accounts").commit();
break;
case 2:
if (fContent instanceof AboutFragment)
break;
fContent = new AboutFragment();
- getSupportFragmentManager().beginTransaction().replace(R.id.main_frame, fContent, "Home").addToBackStack("Home").commit();
+ getSupportFragmentManager().beginTransaction().replace(R.id.main_frame, fContent, "About").addToBackStack("About").commit();
break;
}
diff --git a/src/org/sflphone/fragments/AboutFragment.java b/src/org/sflphone/fragments/AboutFragment.java
index 97692ea..d2d3865 100644
--- a/src/org/sflphone/fragments/AboutFragment.java
+++ b/src/org/sflphone/fragments/AboutFragment.java
@@ -14,6 +14,12 @@
public class AboutFragment extends Fragment {
@Override
+ public void onResume() {
+ super.onResume();
+ getActivity().getActionBar().setTitle(R.string.menu_item_about);
+ }
+
+ @Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
View inflatedView = inflater.inflate(R.layout.frag_about, parent, false);
@@ -21,7 +27,7 @@
String linkText = "<a href='http://sflphone.org/'>" + getResources().getString(R.string.web_site) + "</a>";
link.setText(Html.fromHtml(linkText));
link.setMovementMethod(LinkMovementMethod.getInstance());
- getActivity().getActionBar().setTitle(R.string.menu_item_about);
+
return inflatedView;
}
diff --git a/src/org/sflphone/fragments/AccountsManagementFragment.java b/src/org/sflphone/fragments/AccountsManagementFragment.java
index 379f711..be69b00 100644
--- a/src/org/sflphone/fragments/AccountsManagementFragment.java
+++ b/src/org/sflphone/fragments/AccountsManagementFragment.java
@@ -146,7 +146,6 @@
mShortAnimationDuration = getResources().getInteger(android.R.integer.config_shortAnimTime);
Log.i(TAG, "anim time: " + mShortAnimationDuration);
- getActivity().getActionBar().setTitle(R.string.menu_item_accounts);
}
@@ -204,11 +203,9 @@
intentFilter2.addAction(ConfigurationManagerCallback.ACCOUNTS_CHANGED);
getActivity().registerReceiver(accountReceiver, intentFilter2);
getActivity().getSupportLoaderManager().restartLoader(LoaderConstants.ACCOUNTS_LOADER, null, this);
-
+ getActivity().getActionBar().setTitle(R.string.menu_item_accounts);
}
-
-
@Override
public void onCreateOptionsMenu(Menu m, MenuInflater inf) {
super.onCreateOptionsMenu(m, inf);
@@ -433,16 +430,13 @@
@Override
public void onLoaderReset(android.support.v4.content.Loader<Bundle> arg0) {
- // TODO Stub de la méthode généré automatiquement
-
+
}
@Override
public android.support.v4.content.Loader<Bundle> onCreateLoader(int arg0, Bundle arg1) {
AccountsLoader l = new AccountsLoader(getActivity(), mCallbacks.getService());
-
l.forceLoad();
-
return l;
}
}
diff --git a/src/org/sflphone/fragments/HomeFragment.java b/src/org/sflphone/fragments/HomeFragment.java
index 4973792..51524eb 100644
--- a/src/org/sflphone/fragments/HomeFragment.java
+++ b/src/org/sflphone/fragments/HomeFragment.java
@@ -45,7 +45,7 @@
public class HomeFragment extends Fragment {
static final String TAG = HomeFragment.class.getSimpleName();
-
+
/**
* The {@link ViewPager} that will host the section contents.
*/
@@ -53,6 +53,12 @@
SectionsPagerAdapter mSectionsPagerAdapter = null;
@Override
+ public void onResume() {
+ super.onResume();
+ getActivity().getActionBar().setTitle(R.string.menu_item_home);
+ }
+
+ @Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
@@ -61,26 +67,21 @@
public void onDetach() {
super.onDetach();
}
-
+
@Override
- public void onCreate(Bundle savedBundle){
+ public void onCreate(Bundle savedBundle) {
super.onCreate(savedBundle);
-
- //FIXME : getFragmentManager does not handle nested fragments, pages are not saved!
-
mSectionsPagerAdapter = new SectionsPagerAdapter(getActivity(), getChildFragmentManager());
- getActivity().getActionBar().setTitle(R.string.menu_item_home);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.frag_home, container, false);
-
-
+
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) rootView.findViewById(R.id.pager);
mViewPager.setPageTransformer(true, new ZoomOutPageTransformer(0.7f));
-
+
mViewPager.setOffscreenPageLimit(2);
mViewPager.setAdapter(mSectionsPagerAdapter);
mViewPager.setCurrentItem(1);
@@ -96,7 +97,7 @@
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
-
+
public class ZoomOutPageTransformer implements ViewPager.PageTransformer {
private static final float MIN_ALPHA = .6f;
diff --git a/src/org/sflphone/fragments/MenuFragment.java b/src/org/sflphone/fragments/MenuFragment.java
index 3bc51e4..b0fa2e1 100644
--- a/src/org/sflphone/fragments/MenuFragment.java
+++ b/src/org/sflphone/fragments/MenuFragment.java
@@ -84,14 +84,14 @@
@Override
public void onSectionSelected(int pos) {
-
+
}
};
public interface Callbacks {
public ISipService getService();
-
+
public void onSectionSelected(int pos);
}
@@ -111,7 +111,6 @@
} catch (Exception e1) {
}
-
}
@@ -154,7 +153,7 @@
((ListView) inflatedView.findViewById(R.id.listView)).setOnItemClickListener(new OnItemClickListener() {
@Override
- public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) {
+ public void onItemClick(AdapterView<?> arg0, View selected, int pos, long arg3) {
mCallbacks.onSectionSelected(pos);
}
});
@@ -192,24 +191,12 @@
@Override
public void onStart() {
super.onStart();
-
}
public Account getSelectedAccount() {
return mAccountAdapter.getSelectedAccount();
}
-
-
- /**
- * Called by activity to pass a reference to sipservice to Fragment.
- *
- * @param isip
- */
- public void onServiceSipBinded(ISipService isip) {
-
- }
-
public void updateAllAccounts() {
if (getActivity() != null)
getActivity().getSupportLoaderManager().restartLoader(LoaderConstants.ACCOUNTS_LOADER, null, this);
@@ -234,23 +221,23 @@
@Override
public android.support.v4.content.Loader<Bundle> onCreateLoader(int arg0, Bundle arg1) {
- AccountsLoader l = new AccountsLoader(getActivity(), mCallbacks.getService());
- l.forceLoad();
- return l;
+ AccountsLoader l = new AccountsLoader(getActivity(), mCallbacks.getService());
+ l.forceLoad();
+ return l;
}
@Override
public void onLoadFinished(android.support.v4.content.Loader<Bundle> arg0, Bundle bun) {
- mAccountAdapter.removeAll();
- ArrayList<Account> accounts = bun.getParcelableArrayList(AccountsLoader.ACCOUNTS);
- mAccountAdapter.addAll(accounts);
-
+ mAccountAdapter.removeAll();
+ ArrayList<Account> accounts = bun.getParcelableArrayList(AccountsLoader.ACCOUNTS);
+ mAccountAdapter.addAll(accounts);
+
}
@Override
public void onLoaderReset(android.support.v4.content.Loader<Bundle> arg0) {
// TODO Stub de la méthode généré automatiquement
-
+
}
}