aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/net/lacolaco
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2015-10-11 23:07:35 +0900
committerKazuki Yamaguchi <k@rhe.jp>2015-10-11 23:07:35 +0900
commite1195005912d3fdf85815807bef32c754e21addd (patch)
tree23e975e7a35804c1387458a3d440e4c81a8a2d4d /app/src/main/java/net/lacolaco
parente4b009a19e093f6d610c8bf3d91ed2b694a043be (diff)
downloadSmileEssence-e1195005912d3fdf85815807bef32c754e21addd.tar.gz
MainActivity: 現在のページの名前を ActionBar のタイトルに表示する
Diffstat (limited to 'app/src/main/java/net/lacolaco')
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.java35
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/adapter/PageListAdapter.java34
2 files changed, 35 insertions, 34 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.java
index 19e70e17..2756532c 100644
--- a/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.java
+++ b/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.java
@@ -24,6 +24,7 @@
package net.lacolaco.smileessence.activity;
+import android.app.ActionBar;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
@@ -65,7 +66,7 @@ import twitter4j.TwitterStream;
import java.lang.reflect.Field;
-public class MainActivity extends Activity implements Application.OnCurrentAccountChangedListener {
+public class MainActivity extends Activity implements Application.OnCurrentAccountChangedListener, ViewPager.OnPageChangeListener {
// ------------------------------ FIELDS ------------------------------
public static final int REQUEST_GET_PICTURE_FROM_GALLERY = 11;
@@ -201,7 +202,8 @@ public class MainActivity extends Activity implements Application.OnCurrentAccou
setContentView(R.layout.layout_main);
viewPager = (ViewPager) findViewById(R.id.viewPager);
- pagerAdapter = new PageListAdapter(this, viewPager);
+ pagerAdapter = new PageListAdapter(this);
+ viewPager.addOnPageChangeListener(this);
currentAccountIconImageView = (ImageView) findViewById(android.R.id.home);
currentAccountIconImageView.setScaleType(ImageView.ScaleType.FIT_XY);
@@ -384,6 +386,22 @@ public class MainActivity extends Activity implements Application.OnCurrentAccou
Notificator.getInstance().onForeground();
}
+ // --------------------- Interface OnPageChangeListener ---------------------
+
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ Logger.debug(String.format("Page selected: %d", position));
+ updateActionBarTitle();
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+ }
+
// -------------------------- OTHER METHODS --------------------------
private void getImageUri(int requestCode, int resultCode, Intent data) {
@@ -414,7 +432,6 @@ public class MainActivity extends Activity implements Application.OnCurrentAccou
return true;
}
- @SuppressWarnings("ConstantConditions")
@Override
public void onCurrentAccountChanged(Account account) {
Logger.debug(String.format("onCurrentAccountChanged: %s", account.getUser().getScreenName()));
@@ -427,7 +444,7 @@ public class MainActivity extends Activity implements Application.OnCurrentAccou
// update actionbar
Runnable update = () -> {
- getActionBar().setTitle(user.getScreenName());
+ updateActionBarTitle();
String newUrl = user.getProfileImageUrl();
if (newUrl != null) {
new BitmapURLTask(newUrl, currentAccountIconImageView).execute();
@@ -453,6 +470,16 @@ public class MainActivity extends Activity implements Application.OnCurrentAccou
startStream();
}
+ private void updateActionBarTitle() {
+ ActionBar actionBar = getActionBar();
+ Account currentAccount = Application.getInstance().getCurrentAccount();
+ if (actionBar != null && currentAccount != null) {
+ String screenName = currentAccount.getUser().getScreenName();
+ String pageTitle = pagerAdapter.getName(viewPager.getCurrentItem());
+ setTitle(String.format("%s / %s", screenName, pageTitle));
+ }
+ }
+
// TODO: tab order?
private void initializePages() {
pagerAdapter.addPage(PostFragment.class, getString(R.string.page_name_post), null, false);
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/adapter/PageListAdapter.java b/app/src/main/java/net/lacolaco/smileessence/view/adapter/PageListAdapter.java
index 45d33ec7..04a38f35 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/adapter/PageListAdapter.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/adapter/PageListAdapter.java
@@ -26,7 +26,6 @@ package net.lacolaco.smileessence.view.adapter;
import android.os.Bundle;
import android.support.v13.app.FragmentPagerAdapter;
-import android.support.v4.view.ViewPager;
import net.lacolaco.smileessence.activity.MainActivity;
import net.lacolaco.smileessence.logging.Logger;
import net.lacolaco.smileessence.view.page.PageFragment;
@@ -37,7 +36,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-public class PageListAdapter extends FragmentPagerAdapter implements ViewPager.OnPageChangeListener {
+public class PageListAdapter extends FragmentPagerAdapter {
// ------------------------------ FIELDS ------------------------------
@@ -46,9 +45,8 @@ public class PageListAdapter extends FragmentPagerAdapter implements ViewPager.O
// --------------------------- FragmentPagerAdapter ---------------------------
- public PageListAdapter(MainActivity _activity, ViewPager _viewPager) {
+ public PageListAdapter(MainActivity _activity) {
super(_activity.getFragmentManager());
- _viewPager.addOnPageChangeListener(this);
}
@Override
@@ -83,23 +81,6 @@ public class PageListAdapter extends FragmentPagerAdapter implements ViewPager.O
// ------------------------ INTERFACE METHODS ------------------------
- // --------------------- Interface OnPageChangeListener ---------------------
-
- @Override
- public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
- }
-
- @Override
- public synchronized void onPageSelected(int position) {
- //Synchronize pager and navigation.
- Logger.debug(String.format("Page selected: %d", position));
- //actionBar.setSelectedNavigationItem(position);
- }
-
- @Override
- public void onPageScrollStateChanged(int state) {
- }
-
// -------------------------- OTHER METHODS --------------------------
public void addPage(Class<? extends PageFragment> klass, String name, Bundle args) {
@@ -119,15 +100,8 @@ public class PageListAdapter extends FragmentPagerAdapter implements ViewPager.O
return pages.remove(position) != null; // TODO
}
- @Override
- public void notifyDataSetChanged() {
- ArrayList<String> itemList = new ArrayList<>();
- for (PageInfo f : pages) {
- itemList.add(f.getName());
- }
- //ArrayAdapter<String> adapter = new ArrayAdapter<>(context, R.layout.navigation_list_item, R.id.navigation_list_item_text, itemList);
- //actionBar.setListNavigationCallbacks(adapter, this);
- super.notifyDataSetChanged();
+ public String getName(int pos) {
+ return pages.get(pos).getName();
}
@Deprecated