diff options
Diffstat (limited to 'app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.kt')
-rw-r--r-- | app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.kt | 53 |
1 files changed, 17 insertions, 36 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.kt b/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.kt index 983da6cf..f75f88a4 100644 --- a/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.kt +++ b/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.kt @@ -1,22 +1,20 @@ package net.lacolaco.smileessence.activity -import android.app.Activity import android.app.ActivityManager import android.content.Intent import android.graphics.Bitmap import android.graphics.BitmapFactory import android.graphics.drawable.BitmapDrawable -import android.graphics.drawable.ColorDrawable import android.net.Uri import android.os.Bundle import android.provider.MediaStore import android.support.v4.view.ViewPager +import android.support.v7.app.AppCompatActivity import android.support.v7.graphics.Palette import android.text.TextUtils import android.view.Menu import android.view.MenuItem import android.view.WindowManager -import de.keyboardsurfer.android.widget.crouton.Crouton import kotlinx.android.synthetic.main.layout_main.* import net.lacolaco.smileessence.Application import net.lacolaco.smileessence.R @@ -38,7 +36,7 @@ import java.io.InputStream import java.net.URL import java.util.regex.Pattern -class MainActivity : Activity(), ViewPager.OnPageChangeListener { +class MainActivity : AppCompatActivity(), ViewPager.OnPageChangeListener { val world: World by lazy { val uri = intent.data ?: throw IllegalStateException("[BUG] data not set") val userIdValue = uri.getQueryParameter("user_id") ?: throw IllegalStateException("[BUG] user_id not set") @@ -94,8 +92,10 @@ class MainActivity : Activity(), ViewPager.OnPageChangeListener { private fun setTitle() { title = String.format("%s / %s", world.account.user.screenName, pagerAdapter.getName(viewPager.currentItem)) val label = getString(R.string.app_name) + " - @" + world.account.user.screenName - setTaskDescription(ActivityManager.TaskDescription(label, null, world.account.themeColor)) - window.statusBarColor = world.account.themeColor + if (android.os.Build.VERSION.SDK_INT >= 21) { + setTaskDescription(ActivityManager.TaskDescription(label, null, world.account.themeColor)) + window.statusBarColor = world.account.themeColor + } launchBg { world.account.syncProfileAndSaveIfNecessary() } if (!world.account.user.profileImageUrl.startsWith("http")) @@ -129,7 +129,7 @@ class MainActivity : Activity(), ViewPager.OnPageChangeListener { val dPalette = bg { Palette.from(bitmap).generate() } val scaledBitmap = dScaledBitmap.await() - actionBar.setHomeAsUpIndicator(BitmapDrawable(resources, scaledBitmap)) + toolbar.navigationIcon = BitmapDrawable(resources, scaledBitmap) val palette = dPalette.await() val swatch = if (world.account.useDarkTheme) @@ -139,11 +139,14 @@ class MainActivity : Activity(), ViewPager.OnPageChangeListener { if (swatch == null) { Logger.info("Unable to get a theme color of @${world.account.user.screenName}") } else { - actionBar.setBackgroundDrawable(ColorDrawable(swatch.rgb)) - window.statusBarColor = swatch.rgb - setTaskDescription(ActivityManager.TaskDescription(label, bitmap, swatch.rgb)) + //actionBar.setBackgroundDrawable(ColorDrawable(swatch.rgb)) + toolbar.setBackgroundColor(swatch.rgb) + if (android.os.Build.VERSION.SDK_INT >= 21) { + window.statusBarColor = swatch.rgb + setTaskDescription(ActivityManager.TaskDescription(label, bitmap, swatch.rgb)) + } world.account.themeColor = swatch.rgb - launchBg { world.account.save() } + //launchBg { world.account.save() } } } } @@ -229,7 +232,7 @@ class MainActivity : Activity(), ViewPager.OnPageChangeListener { override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { when (requestCode) { REQUEST_GET_PICTURE_FROM_GALLERY -> { - if (resultCode != Activity.RESULT_OK) { + if (resultCode != RESULT_OK) { Logger.error(requestCode) world.notifyError(R.string.notice_select_image_failed) finish() @@ -250,9 +253,10 @@ class MainActivity : Activity(), ViewPager.OnPageChangeListener { val account = world.account setTheme(if (account.useDarkTheme) R.style.theme_dark else R.style.theme_light) setContentView(R.layout.layout_main) + setSupportActionBar(toolbar) viewPager.addOnPageChangeListener(this) - actionBar.setDisplayHomeAsUpEnabled(true) + //actionBar.setDisplayHomeAsUpEnabled(true) // TODO: tab order? val args = Bundle() @@ -303,29 +307,6 @@ class MainActivity : Activity(), ViewPager.OnPageChangeListener { window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) } - override fun onDestroy() { - Crouton.cancelAllCroutons() - // Workaround for LeakCanary - fixCroutonLeak() - Logger.debug("onDestroy") - super.onDestroy() - } - - private fun fixCroutonLeak() { - try { - val klass = Class.forName("de.keyboardsurfer.android.widget.crouton.DefaultAnimationsBuilder") - val slideInDownAnimation = klass.getDeclaredField("slideInDownAnimation") - slideInDownAnimation.isAccessible = true - slideInDownAnimation.set(null, null) - val slideOutUpAnimation = klass.getDeclaredField("slideOutUpAnimation") - slideOutUpAnimation.isAccessible = true - slideOutUpAnimation.set(null, null) - } catch (e: Exception) { - Logger.error("crouton fix error: " + e) - } - } - - override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.main, menu) return true |