diff options
author | Jeremy Klein <jlklein@google.com> | 2015-08-07 11:13:28 -0700 |
---|---|---|
committer | Jeremy Klein <jlklein@google.com> | 2015-08-13 15:04:54 -0700 |
commit | 39a9114332262e3febd8d2ea7f05c7317744019a (patch) | |
tree | d0941e7e9977fbdbce8213dce57877c011023c7b | |
parent | 7de5ce146e721cbc7296c8110f6bed26d9eae8e2 (diff) | |
download | connectbot-39a9114332262e3febd8d2ea7f05c7317744019a.tar.gz connectbot-39a9114332262e3febd8d2ea7f05c7317744019a.tar.bz2 connectbot-39a9114332262e3febd8d2ea7f05c7317744019a.zip |
Add tabs when there's more than one terminal active.
-rw-r--r-- | app/build.gradle | 4 | ||||
-rw-r--r-- | app/src/main/AndroidManifest.xml | 2 | ||||
-rw-r--r-- | app/src/main/java/org/connectbot/ConsoleActivity.java | 20 | ||||
-rw-r--r-- | app/src/main/res/layout/act_console.xml | 24 | ||||
-rw-r--r-- | app/src/main/res/values-v11/styles.xml | 2 | ||||
-rw-r--r-- | app/src/main/res/values-v14/styles.xml | 2 | ||||
-rw-r--r-- | app/src/main/res/values/styles.xml | 2 |
7 files changed, 44 insertions, 12 deletions
diff --git a/app/build.gradle b/app/build.gradle index 0913b4e..67e6c01 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -41,7 +41,7 @@ android { defaultConfig { applicationId "org.connectbot" - minSdkVersion 4 + minSdkVersion 8 targetSdkVersion 22 ndk { @@ -64,6 +64,8 @@ android { dependencies { compile "com.android.support:support-v4:22.2.1" + compile "com.android.support:appcompat-v7:22.2.1" + compile "com.android.support:design:22.2.0" } buildTypes { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4bbe055..718b91e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -21,7 +21,7 @@ android:versionCode="375" android:installLocation="auto"> - <uses-sdk android:targetSdkVersion="22" android:minSdkVersion="4" /> + <uses-sdk android:targetSdkVersion="22" android:minSdkVersion="8" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.VIBRATE" /> diff --git a/app/src/main/java/org/connectbot/ConsoleActivity.java b/app/src/main/java/org/connectbot/ConsoleActivity.java index 214f878..15fd135 100644 --- a/app/src/main/java/org/connectbot/ConsoleActivity.java +++ b/app/src/main/java/org/connectbot/ConsoleActivity.java @@ -50,9 +50,11 @@ import android.os.Message; import android.preference.PreferenceManager; import android.support.annotation.Nullable; import android.support.v4.app.ActivityCompat; +import android.support.design.widget.TabLayout; import android.support.v4.view.MotionEventCompat; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; +import android.support.v7.widget.Toolbar; import android.text.ClipboardManager; import android.util.Log; import android.view.ContextMenu; @@ -98,6 +100,8 @@ public class ConsoleActivity extends Activity { private static final int KEYBOARD_DISPLAY_TIME = 1500; protected ViewPager pager = null; + protected TabLayout tabs = null; + protected Toolbar toolbar = null; @Nullable protected TerminalManager bound = null; protected TerminalPagerAdapter adapter = null; @@ -362,6 +366,7 @@ public class ConsoleActivity extends Activity { inflater = LayoutInflater.from(this); + toolbar = (Toolbar) findViewById(R.id.toolbar); pager = (ViewPager) findViewById(R.id.console_flip); registerForContextMenu(pager); pager.addOnPageChangeListener( @@ -371,6 +376,8 @@ public class ConsoleActivity extends Activity { onTerminalChanged(); } }); + adapter = new TerminalPagerAdapter(); + pager.setAdapter(adapter); empty = (TextView) findViewById(android.R.id.empty); @@ -464,6 +471,9 @@ public class ConsoleActivity extends Activity { } }); + tabs = (TabLayout) findViewById(R.id.tabs); + tabs.setupWithViewPager(pager); + // detect fling gestures to switch between terminals final GestureDetector detect = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() { private float totalY = 0; @@ -635,9 +645,6 @@ public class ConsoleActivity extends Activity { } }); - - adapter = new TerminalPagerAdapter(); - pager.setAdapter(adapter); } /** @@ -1226,6 +1233,13 @@ public class ConsoleActivity extends Activity { } @Override + public void notifyDataSetChanged() { + super.notifyDataSetChanged(); + toolbar.setVisibility(this.getCount() > 1 ? View.VISIBLE : View.GONE); + tabs.setTabsFromPagerAdapter(this); + } + + @Override public boolean isViewFromObject(View view, Object object) { return view == object; } diff --git a/app/src/main/res/layout/act_console.xml b/app/src/main/res/layout/act_console.xml index b2c0d08..a2a8327 100644 --- a/app/src/main/res/layout/act_console.xml +++ b/app/src/main/res/layout/act_console.xml @@ -18,11 +18,26 @@ */ --> -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" +<RelativeLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="fill_parent" android:layout_height="fill_parent" - android:background="#ff000000" - > + android:background="#ff000000"> + + <android.support.v7.widget.Toolbar + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:id="@+id/toolbar" + android:theme="@style/Theme.AppCompat.Light.DarkActionBar"/> + + <android.support.design.widget.TabLayout + android:id="@+id/tabs" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textAppearance="?android:attr/textAppearanceMedium" + app:tabIndicatorColor="@android:color/white" + android:background="#222222"/> <TextView android:id="@android:id/empty" @@ -31,12 +46,13 @@ android:text="@string/terminal_no_hosts_connected" android:textAppearance="?android:attr/textAppearanceMedium" android:gravity="center" - /> + android:layout_below="@id/toolbar"/> <android.support.v4.view.ViewPager android:id="@+id/console_flip" android:layout_width="fill_parent" android:layout_height="fill_parent" + android:layout_below="@id/toolbar" /> <RelativeLayout diff --git a/app/src/main/res/values-v11/styles.xml b/app/src/main/res/values-v11/styles.xml index 9a0c22b..f831811 100644 --- a/app/src/main/res/values-v11/styles.xml +++ b/app/src/main/res/values-v11/styles.xml @@ -18,7 +18,7 @@ */ --> <resources> - <style name="NoTitle" parent="android:Theme.Holo"> + <style name="NoTitle" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> <item name="android:windowContentOverlay">@null</item> <item name="android:actionBarStyle">@style/SolidActionBar</item> </style> diff --git a/app/src/main/res/values-v14/styles.xml b/app/src/main/res/values-v14/styles.xml index 3969010..f831811 100644 --- a/app/src/main/res/values-v14/styles.xml +++ b/app/src/main/res/values-v14/styles.xml @@ -18,7 +18,7 @@ */ --> <resources> - <style name="NoTitle" parent="android:Theme.DeviceDefault"> + <style name="NoTitle" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> <item name="android:windowContentOverlay">@null</item> <item name="android:actionBarStyle">@style/SolidActionBar</item> </style> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 22e830b..f0cd073 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -18,7 +18,7 @@ */ --> <resources> - <style name="NoTitle" parent="android:Theme"> + <style name="NoTitle" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> <item name="android:windowNoTitle">true</item> <item name="android:windowContentOverlay">@null</item> </style> |