From 108b740c30793602a95d54b5dd6d69ae9c88f72d Mon Sep 17 00:00:00 2001 From: Mygod Date: Mon, 9 Nov 2015 22:13:38 +0800 Subject: [PATCH 1/3] Remove delay when scanning QR code --- .../github/shadowsocks/ParserActivity.scala | 30 +++++-------------- .../com/github/shadowsocks/Shadowsocks.scala | 4 --- 2 files changed, 7 insertions(+), 27 deletions(-) diff --git a/src/main/scala/com/github/shadowsocks/ParserActivity.scala b/src/main/scala/com/github/shadowsocks/ParserActivity.scala index ba102adc..1900a27f 100644 --- a/src/main/scala/com/github/shadowsocks/ParserActivity.scala +++ b/src/main/scala/com/github/shadowsocks/ParserActivity.scala @@ -39,11 +39,11 @@ package com.github.shadowsocks -import android.app.{Activity, AlertDialog, ProgressDialog} +import android.app.{Activity, AlertDialog} import android.content.DialogInterface import android.graphics.Color import android.graphics.drawable.ColorDrawable -import android.os.{Bundle, Handler, Message} +import android.os.Bundle import android.preference.PreferenceManager import android.view.WindowManager import com.github.shadowsocks.database.{Profile, ProfileManager} @@ -84,27 +84,11 @@ class ParserActivity extends Activity { } def addProfile(profile: Profile) { - - val h = showProgress(getString(R.string.loading)) - - h.postDelayed(() => { - val profileManager = - new ProfileManager(PreferenceManager.getDefaultSharedPreferences(getBaseContext), - ShadowsocksApplication.dbHelper) - profileManager.createOrUpdateProfile(profile) - profileManager.reload(profile.id) - h.sendEmptyMessage(0) - }, 600) - } - - private def showProgress(msg: String): Handler = { - val progressDialog = ProgressDialog.show(this, "", msg, true, false) - new Handler { - override def handleMessage(msg: Message) { - progressDialog.dismiss() - finish() - } - } + val profileManager = + new ProfileManager(PreferenceManager.getDefaultSharedPreferences(getBaseContext), + ShadowsocksApplication.dbHelper) + profileManager.createOrUpdateProfile(profile) + profileManager.reload(profile.id) } } diff --git a/src/main/scala/com/github/shadowsocks/Shadowsocks.scala b/src/main/scala/com/github/shadowsocks/Shadowsocks.scala index 3989c9cf..5843ea67 100644 --- a/src/main/scala/com/github/shadowsocks/Shadowsocks.scala +++ b/src/main/scala/com/github/shadowsocks/Shadowsocks.scala @@ -526,10 +526,6 @@ class Shadowsocks } } - override def onStart() { - super.onStart() - } - override def onStop() { super.onStop() clearDialog() From 3efeed1b90f472eb8d71ade699fed25e09390451 Mon Sep 17 00:00:00 2001 From: Mygod Date: Mon, 9 Nov 2015 22:21:27 +0800 Subject: [PATCH 2/3] Fix preference enabled on activity recreation --- src/main/scala/com/github/shadowsocks/Shadowsocks.scala | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/scala/com/github/shadowsocks/Shadowsocks.scala b/src/main/scala/com/github/shadowsocks/Shadowsocks.scala index 5843ea67..5c6a6e0d 100644 --- a/src/main/scala/com/github/shadowsocks/Shadowsocks.scala +++ b/src/main/scala/com/github/shadowsocks/Shadowsocks.scala @@ -467,18 +467,22 @@ class Shadowsocks fab.setBackgroundTintList(greyTint) fabProgressCircle.show() changeSwitch(checked = true) + setPreferenceEnabled(false) case State.CONNECTED => fab.setBackgroundTintList(greenTint) fabProgressCircle.hide() changeSwitch(checked = true) + setPreferenceEnabled(false) case State.STOPPING => fab.setBackgroundTintList(greyTint) fabProgressCircle.show() changeSwitch(checked = false) + setPreferenceEnabled(false) case _ => fab.setBackgroundTintList(greyTint) fabProgressCircle.hide() changeSwitch(checked = false) + setPreferenceEnabled(true) } state = bgService.getState } From 49bcfb279e94e14537f451b92fd5b35482801bf1 Mon Sep 17 00:00:00 2001 From: Mygod Date: Mon, 9 Nov 2015 23:15:40 +0800 Subject: [PATCH 3/3] Reduce apk size --- build.sbt | 11 +- src/main/java/android/util/FloatMath.java | 123 ---------------------- 2 files changed, 4 insertions(+), 130 deletions(-) delete mode 100644 src/main/java/android/util/FloatMath.java diff --git a/build.sbt b/build.sbt index d2c8a1a9..45c762f1 100644 --- a/build.sbt +++ b/build.sbt @@ -18,6 +18,8 @@ ndkJavah in Android := List() ndkBuild in Android := List() +shrinkResources in Android := true + typedResources in Android := false resolvers += Resolver.jcenterRepo @@ -39,12 +41,7 @@ libraryDependencies ++= Seq( "com.j256.ormlite" % "ormlite-android" % "4.48" ) -proguardOptions in Android ++= Seq("-keep class android.support.v4.app.** { *; }", - "-keep interface android.support.v4.app.** { *; }", - "-keep class android.support.v7.widget.Toolbar { (...); }", - "-keep class org.jraf.android.backport.** { *; }", - "-keep class com.github.shadowsocks.** { *; }", - "-keep class * extends com.j256.ormlite.** { *; }", +proguardOptions in Android ++= Seq("-keep class com.github.shadowsocks.** { (...); }", + "-keep class com.github.shadowsocks.System { *; }", "-keepattributes *Annotation*", - "-dontwarn com.google.android.gms.internal.zzhu", "-dontwarn org.xbill.**") diff --git a/src/main/java/android/util/FloatMath.java b/src/main/java/android/util/FloatMath.java deleted file mode 100644 index 8f488af6..00000000 --- a/src/main/java/android/util/FloatMath.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * 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 android.util; - -/** - * Math routines similar to those found in {@link java.lang.Math}. - * - *

Historically these methods were faster than the equivalent double-based - * {@link java.lang.Math} methods. On versions of Android with a JIT they - * became slower and have since been re-implemented to wrap calls to - * {@link java.lang.Math}. {@link java.lang.Math} should be used in - * preference. - * - * @deprecated Use {@link java.lang.Math} instead. - */ -@Deprecated -public class FloatMath { - - /** Prevents instantiation. */ - private FloatMath() {} - - /** - * Returns the float conversion of the most positive (i.e. closest to - * positive infinity) integer value which is less than the argument. - * - * @param value to be converted - * @return the floor of value - */ - public static float floor(float value) { - return (float) Math.floor(value); - } - - /** - * Returns the float conversion of the most negative (i.e. closest to - * negative infinity) integer value which is greater than the argument. - * - * @param value to be converted - * @return the ceiling of value - */ - public static float ceil(float value) { - return (float) Math.ceil(value); - } - - /** - * Returns the closest float approximation of the sine of the argument. - * - * @param angle to compute the cosine of, in radians - * @return the sine of angle - */ - public static float sin(float angle) { - return (float) Math.sin(angle); - } - - /** - * Returns the closest float approximation of the cosine of the argument. - * - * @param angle to compute the cosine of, in radians - * @return the cosine of angle - */ - public static float cos(float angle) { - return (float) Math.cos(angle); - } - - /** - * Returns the closest float approximation of the square root of the - * argument. - * - * @param value to compute sqrt of - * @return the square root of value - */ - public static float sqrt(float value) { - return (float) Math.sqrt(value); - } - - /** - * Returns the closest float approximation of the raising "e" to the power - * of the argument. - * - * @param value to compute the exponential of - * @return the exponential of value - */ - public static float exp(float value) { - return (float) Math.exp(value); - } - - /** - * Returns the closest float approximation of the result of raising {@code - * x} to the power of {@code y}. - * - * @param x the base of the operation. - * @param y the exponent of the operation. - * @return {@code x} to the power of {@code y}. - */ - public static float pow(float x, float y) { - return (float) Math.pow(x, y); - } - - /** - * Returns {@code sqrt(}{@code x}{@code 2}{@code +} - * {@code y}{@code 2}{@code )}. - * - * @param x a float number - * @param y a float number - * @return the hypotenuse - */ - public static float hypot(float x, float y) { - return (float) Math.hypot(x, y); - } -}