diff --git a/samples/app/src/main/java/com/example/app/BaseActivity.java b/samples/app/src/main/java/com/example/app/BaseActivity.java new file mode 100644 index 00000000..5c049554 --- /dev/null +++ b/samples/app/src/main/java/com/example/app/BaseActivity.java @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2015 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package com.example.app; + +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; + +/** + * BaseActivity is an AppCompatActivity which sets up a Toolbar if present in the layout. + */ +public class BaseActivity extends AppCompatActivity { + + @Override + public void setContentView(int layoutResID) { + super.setContentView(layoutResID); + setupToolbar(); + } + + /** + * Finds and sets the Toolbar as the support ActionBar if it is non-null. Returns the Toolbar. + * @return The Toolbar view or null if not found. + */ + protected Toolbar setupToolbar() { + final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + if (toolbar != null) { + setSupportActionBar(toolbar); + } + return toolbar; + } +} diff --git a/samples/app/src/main/java/com/example/app/TwitterSampleActivity.java b/samples/app/src/main/java/com/example/app/TwitterSampleActivity.java index 1092dc44..cc97cebe 100644 --- a/samples/app/src/main/java/com/example/app/TwitterSampleActivity.java +++ b/samples/app/src/main/java/com/example/app/TwitterSampleActivity.java @@ -19,7 +19,6 @@ import android.content.Intent; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; import android.view.Menu; import android.view.MenuInflater; import android.view.View; @@ -28,7 +27,7 @@ import com.example.app.tweetui.TweetUiMainActivity; import com.example.app.twittercore.TwitterCoreMainActivity; -public class TwitterSampleActivity extends AppCompatActivity { +public class TwitterSampleActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { diff --git a/samples/app/src/main/java/com/example/app/tweetcomposer/TweetComposerMainActivity.java b/samples/app/src/main/java/com/example/app/tweetcomposer/TweetComposerMainActivity.java index c52b192a..8e55a902 100644 --- a/samples/app/src/main/java/com/example/app/tweetcomposer/TweetComposerMainActivity.java +++ b/samples/app/src/main/java/com/example/app/tweetcomposer/TweetComposerMainActivity.java @@ -18,10 +18,12 @@ package com.example.app.tweetcomposer; import android.os.Bundle; +import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; +import com.example.app.BaseActivity; import com.twitter.sdk.android.tweetcomposer.TweetComposer; import com.example.app.R; @@ -29,13 +31,17 @@ import java.net.MalformedURLException; import java.net.URL; -public class TweetComposerMainActivity extends AppCompatActivity { +public class TweetComposerMainActivity extends BaseActivity { private static final String TAG = "TweetComposer"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tweetcomposer_activity_main); + ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setTitle(R.string.kit_tweetcomposer); + } } public void onTweet(View view) { diff --git a/samples/app/src/main/java/com/example/app/tweetui/TimelineActivity.java b/samples/app/src/main/java/com/example/app/tweetui/TimelineActivity.java index 1e43357c..c7289d78 100644 --- a/samples/app/src/main/java/com/example/app/tweetui/TimelineActivity.java +++ b/samples/app/src/main/java/com/example/app/tweetui/TimelineActivity.java @@ -21,12 +21,12 @@ import android.os.Bundle; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.app.ActionBar; -import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AbsListView; import android.widget.ListView; import android.widget.Toast; +import com.example.app.BaseActivity; import com.example.app.R; import com.example.app.twittercore.TwitterCoreMainActivity; import com.twitter.sdk.android.core.Callback; @@ -43,7 +43,7 @@ /** * TimelineActivity shows a full screen timeline which is useful for screenshots. */ -public class TimelineActivity extends AppCompatActivity { +public class TimelineActivity extends BaseActivity { final WeakReference activityRef = new WeakReference(TimelineActivity.this); @@ -51,7 +51,6 @@ public class TimelineActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tweetui_swipe_timeline); - ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setTitle(R.string.refresh_timeline_title); diff --git a/samples/app/src/main/java/com/example/app/tweetui/TweetUiActivity.java b/samples/app/src/main/java/com/example/app/tweetui/TweetUiActivity.java index fc3f0110..2bc1dcbe 100644 --- a/samples/app/src/main/java/com/example/app/tweetui/TweetUiActivity.java +++ b/samples/app/src/main/java/com/example/app/tweetui/TweetUiActivity.java @@ -19,14 +19,14 @@ import android.os.Bundle; import android.support.v4.app.Fragment; -import android.support.v7.app.AppCompatActivity; +import com.example.app.BaseActivity; import com.example.app.R; /** - * TweetUiActivity base activity which supports single fragments and the ActionBar. + * TweetUiActivity is a BaseActivity which creates a single fragment. */ -public abstract class TweetUiActivity extends AppCompatActivity { +public abstract class TweetUiActivity extends BaseActivity { abstract int getLayout(); diff --git a/samples/app/src/main/java/com/example/app/tweetui/TweetUiMainActivity.java b/samples/app/src/main/java/com/example/app/tweetui/TweetUiMainActivity.java index dcda4d21..27621920 100644 --- a/samples/app/src/main/java/com/example/app/tweetui/TweetUiMainActivity.java +++ b/samples/app/src/main/java/com/example/app/tweetui/TweetUiMainActivity.java @@ -19,18 +19,23 @@ import android.content.Intent; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; +import android.support.v7.app.ActionBar; import android.view.View; import android.widget.Button; +import com.example.app.BaseActivity; import com.example.app.R; -public class TweetUiMainActivity extends AppCompatActivity { +public class TweetUiMainActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tweetui_activity_main); + ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setTitle(R.string.kit_tweetui); + } final Button xmlTweetButton = (Button) findViewById(R.id.button_xml_tweet_activity); xmlTweetButton.setOnClickListener(new View.OnClickListener() { diff --git a/samples/app/src/main/java/com/example/app/twittercore/TwitterCoreMainActivity.java b/samples/app/src/main/java/com/example/app/twittercore/TwitterCoreMainActivity.java index 31f7bf52..0136fb06 100644 --- a/samples/app/src/main/java/com/example/app/twittercore/TwitterCoreMainActivity.java +++ b/samples/app/src/main/java/com/example/app/twittercore/TwitterCoreMainActivity.java @@ -20,9 +20,10 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; +import android.support.v7.app.ActionBar; import android.widget.Toast; +import com.example.app.BaseActivity; import com.twitter.sdk.android.core.Callback; import com.twitter.sdk.android.core.Result; import com.twitter.sdk.android.core.TwitterException; @@ -32,7 +33,7 @@ import com.example.app.R; -public class TwitterCoreMainActivity extends AppCompatActivity { +public class TwitterCoreMainActivity extends BaseActivity { private TwitterLoginButton loginButton; @@ -49,6 +50,10 @@ public static Intent newIntent(Context packageContext) { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.twittercore_activity_main); + ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setTitle(R.string.kit_twittercore); + } // Set up the login button by setting callback to invoke when authorization request // completes diff --git a/samples/app/src/main/res/layout/activity_frame.xml b/samples/app/src/main/res/layout/activity_frame.xml index c6844783..ddac8677 100644 --- a/samples/app/src/main/res/layout/activity_frame.xml +++ b/samples/app/src/main/res/layout/activity_frame.xml @@ -1,6 +1,17 @@ - \ No newline at end of file + + + + + + + + \ No newline at end of file diff --git a/samples/app/src/main/res/layout/toolbar.xml b/samples/app/src/main/res/layout/toolbar.xml new file mode 100644 index 00000000..3412a01b --- /dev/null +++ b/samples/app/src/main/res/layout/toolbar.xml @@ -0,0 +1,12 @@ + + + \ No newline at end of file diff --git a/samples/app/src/main/res/layout/tweetcomposer_activity_main.xml b/samples/app/src/main/res/layout/tweetcomposer_activity_main.xml index a830d8cd..5ae06fce 100644 --- a/samples/app/src/main/res/layout/tweetcomposer_activity_main.xml +++ b/samples/app/src/main/res/layout/tweetcomposer_activity_main.xml @@ -4,6 +4,10 @@ android:layout_width="match_parent" android:layout_height="match_parent"> + +