From e5db0f630f4cc6cd45b4c2ee859cd416b99d4a3d Mon Sep 17 00:00:00 2001 From: Max Lv Date: Fri, 23 Dec 2016 21:21:13 +0800 Subject: [PATCH] Add a header layout --- src/main/res/drawable/background_header.png | Bin 0 -> 18765 bytes src/main/res/layout/layout_header.xml | 10 ++++++ .../com/github/shadowsocks/MainActivity.scala | 33 ++++++++++++++++-- 3 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 src/main/res/drawable/background_header.png create mode 100644 src/main/res/layout/layout_header.xml diff --git a/src/main/res/drawable/background_header.png b/src/main/res/drawable/background_header.png new file mode 100644 index 0000000000000000000000000000000000000000..b74601480060415c66fb5566a567fb629c6c0aba GIT binary patch literal 18765 zcmV)@K!LxBP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 IM6N<$f??ajX8-^I literal 0 HcmV?d00001 diff --git a/src/main/res/layout/layout_header.xml b/src/main/res/layout/layout_header.xml new file mode 100644 index 00000000..9c9f8631 --- /dev/null +++ b/src/main/res/layout/layout_header.xml @@ -0,0 +1,10 @@ + + diff --git a/src/main/scala/com/github/shadowsocks/MainActivity.scala b/src/main/scala/com/github/shadowsocks/MainActivity.scala index 0281b8cf..c3ee042a 100644 --- a/src/main/scala/com/github/shadowsocks/MainActivity.scala +++ b/src/main/scala/com/github/shadowsocks/MainActivity.scala @@ -22,12 +22,13 @@ package com.github.shadowsocks import java.lang.System.currentTimeMillis import java.net.{HttpURLConnection, URL} -import java.util.Locale +import java.util.{Locale, Hashtable} import android.app.Activity import android.app.backup.BackupManager import android.content.SharedPreferences.OnSharedPreferenceChangeListener import android.content._ +import android.graphics.Typeface import android.net.{Uri, VpnService} import android.nfc.{NdefMessage, NfcAdapter} import android.os.{Build, Bundle, Handler} @@ -40,6 +41,7 @@ import android.util.Log import android.view.View import android.webkit.{WebView, WebViewClient} import android.widget.{TextView, Toast} + import com.github.jorgecastilloprz.FABProgressCircle import com.github.shadowsocks.ShadowsocksApplication.app import com.github.shadowsocks.aidl.IShadowsocksServiceCallback @@ -51,6 +53,27 @@ import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem import com.mikepenz.materialdrawer.model.{PrimaryDrawerItem, SecondaryDrawerItem} import com.mikepenz.materialdrawer.{Drawer, DrawerBuilder} +object Typefaces { + def get(c: Context, assetPath: String): Typeface = { + cache synchronized { + if (!cache.containsKey(assetPath)) { + try { + cache.put(assetPath, Typeface.createFromAsset(c.getAssets, assetPath)) + } catch { + case e: Exception => + Log.e(TAG, "Could not get typeface '" + assetPath + "' because " + e.getMessage) + app.track(e) + return null + } + } + return cache.get(assetPath) + } + } + + private final val TAG = "Typefaces" + private final val cache = new Hashtable[String, Typeface] +} + object MainActivity { private final val TAG = "ShadowsocksMainActivity" private final val REQUEST_CONNECT = 1 @@ -209,7 +232,7 @@ class MainActivity extends Activity with ServiceBoundContext with Drawer.OnDrawe setContentView(R.layout.layout_main) drawer = new DrawerBuilder() .withActivity(this) - // TODO: .withHeader(R.drawable.some_header) + .withHeader(R.layout.layout_header) .addDrawerItems( new PrimaryDrawerItem() .withIdentifier(DRAWER_PROFILES) @@ -228,6 +251,12 @@ class MainActivity extends Activity with ServiceBoundContext with Drawer.OnDrawe .withOnDrawerItemClickListener(this) .withActionBarDrawerToggle(true) .build() + + val header = drawer.getHeader + val title = header.findViewById(R.id.drawer_title).asInstanceOf[TextView] + val tf = Typefaces.get(this, "fonts/Iceland.ttf") + if (tf != null) title.setTypeface(tf) + if (savedInstanceState == null) displayFragment(profilesFragment) stat = findViewById(R.id.stat) connectionTestText = findViewById(R.id.connection_test).asInstanceOf[TextView]