| @@ -26,5 +26,10 @@ | |||||
| <option name="name" value="maven" /> | <option name="name" value="maven" /> | ||||
| <option name="url" value="https://jitpack.io" /> | <option name="url" value="https://jitpack.io" /> | ||||
| </remote-repository> | </remote-repository> | ||||
| <remote-repository> | |||||
| <option name="id" value="maven2" /> | |||||
| <option name="name" value="maven2" /> | |||||
| <option name="url" value="https://dl.bintray.com/umsdk/release" /> | |||||
| </remote-repository> | |||||
| </component> | </component> | ||||
| </project> | </project> | ||||
| @@ -12,7 +12,7 @@ android { | |||||
| minSdkVersion 26 | minSdkVersion 26 | ||||
| targetSdkVersion 30 | targetSdkVersion 30 | ||||
| versionCode 2 | versionCode 2 | ||||
| versionName "2.0" | |||||
| versionName "2.0.0" | |||||
| testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | ||||
| } | } | ||||
| signingConfigs { | signingConfigs { | ||||
| @@ -26,13 +26,13 @@ android { | |||||
| } | } | ||||
| buildTypes { | buildTypes { | ||||
| release { | release { | ||||
| minifyEnabled true | |||||
| minifyEnabled false | |||||
| proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | ||||
| zipAlignEnabled true | zipAlignEnabled true | ||||
| debuggable false | debuggable false | ||||
| signingConfig signingConfigs.yzx | signingConfig signingConfigs.yzx | ||||
| // 移除无用的resource文件 | // 移除无用的resource文件 | ||||
| shrinkResources true | |||||
| shrinkResources false | |||||
| } | } | ||||
| debug { | debug { | ||||
| @@ -78,5 +78,7 @@ dependencies { | |||||
| implementation 'com.google.code.gson:gson:2.8.6' | implementation 'com.google.code.gson:gson:2.8.6' | ||||
| annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0' | annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0' | ||||
| implementation 'com.github.AlexLiuSheng:CheckVersionLib:2.4.1_androidx' | implementation 'com.github.AlexLiuSheng:CheckVersionLib:2.4.1_androidx' | ||||
| // 友盟统计SDK | |||||
| implementation 'com.umeng.umsdk:common:9.3.6' // 必选 | |||||
| implementation 'com.umeng.umsdk:asms:1.2.1' // 必选 | |||||
| } | } | ||||
| @@ -13,6 +13,7 @@ | |||||
| <uses-permission android:name="android.permission.READ_MEDIA_STORAGE" /> | <uses-permission android:name="android.permission.READ_MEDIA_STORAGE" /> | ||||
| <uses-permission android:name="android.permission.WAKE_LOCK" /> | <uses-permission android:name="android.permission.WAKE_LOCK" /> | ||||
| <application | <application | ||||
| android:name=".App" | android:name=".App" | ||||
| android:allowBackup="true" | android:allowBackup="true" | ||||
| @@ -21,7 +22,10 @@ | |||||
| android:roundIcon="@mipmap/ic_launcher_round" | android:roundIcon="@mipmap/ic_launcher_round" | ||||
| android:supportsRtl="true" | android:supportsRtl="true" | ||||
| android:theme="@style/AppTheme"> | android:theme="@style/AppTheme"> | ||||
| <activity android:name=".activity.NoteActivity"></activity> | |||||
| <activity | |||||
| android:name=".activity.NoteActivity" | |||||
| android:configChanges="orientation|keyboard" | |||||
| android:screenOrientation="portrait" /> | |||||
| <activity | <activity | ||||
| android:name=".activity.WebActivity" | android:name=".activity.WebActivity" | ||||
| android:configChanges="orientation|keyboard" | android:configChanges="orientation|keyboard" | ||||
| @@ -30,6 +34,8 @@ | |||||
| <intent-filter> | <intent-filter> | ||||
| <action android:name="android.intent.action.MAIN" /> | <action android:name="android.intent.action.MAIN" /> | ||||
| <category android:name="android.intent.category.HOME" /> | |||||
| <category android:name="android.intent.category.DEFAULT" /> | |||||
| <category android:name="android.intent.category.LAUNCHER" /> | <category android:name="android.intent.category.LAUNCHER" /> | ||||
| </intent-filter> | </intent-filter> | ||||
| </activity> | </activity> | ||||
| @@ -3,6 +3,8 @@ package com.yzx.webebook | |||||
| import android.app.Application | import android.app.Application | ||||
| import com.blankj.utilcode.util.Utils | import com.blankj.utilcode.util.Utils | ||||
| import com.lzy.okgo.OkGo | import com.lzy.okgo.OkGo | ||||
| import com.umeng.analytics.MobclickAgent | |||||
| import com.umeng.commonsdk.UMConfigure | |||||
| class App: Application() { | class App: Application() { | ||||
| @@ -10,5 +12,8 @@ class App: Application() { | |||||
| super.onCreate() | super.onCreate() | ||||
| OkGo.getInstance().init(this) | OkGo.getInstance().init(this) | ||||
| Utils.init(this) | Utils.init(this) | ||||
| UMConfigure.init(this, "60334d01425ec25f10fbd5b4", "ebook", UMConfigure.DEVICE_TYPE_PHONE, "") | |||||
| MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO) | |||||
| } | } | ||||
| } | } | ||||
| @@ -4,6 +4,7 @@ import android.annotation.SuppressLint | |||||
| import android.app.Activity | import android.app.Activity | ||||
| import android.app.AlertDialog | import android.app.AlertDialog | ||||
| import android.app.Dialog | import android.app.Dialog | ||||
| import android.content.Context | |||||
| import android.content.Intent | import android.content.Intent | ||||
| import android.net.http.SslError | import android.net.http.SslError | ||||
| import android.os.Build | import android.os.Build | ||||
| @@ -13,13 +14,25 @@ import android.view.View | |||||
| import android.view.ViewGroup | import android.view.ViewGroup | ||||
| import android.webkit.* | import android.webkit.* | ||||
| import android.widget.LinearLayout | import android.widget.LinearLayout | ||||
| import android.widget.ProgressBar | |||||
| import android.widget.TextView | import android.widget.TextView | ||||
| import androidx.annotation.RequiresApi | import androidx.annotation.RequiresApi | ||||
| import androidx.core.widget.ContentLoadingProgressBar | |||||
| import com.allenliu.versionchecklib.v2.AllenVersionChecker | import com.allenliu.versionchecklib.v2.AllenVersionChecker | ||||
| import com.allenliu.versionchecklib.v2.builder.UIData | import com.allenliu.versionchecklib.v2.builder.UIData | ||||
| import com.allenliu.versionchecklib.v2.callback.CustomDownloadingDialogListener | |||||
| import com.blankj.utilcode.util.AppUtils | |||||
| import com.blankj.utilcode.util.SPUtils | |||||
| import com.google.gson.Gson | |||||
| import com.google.gson.reflect.TypeToken | |||||
| import com.lzy.okgo.OkGo | |||||
| import com.lzy.okgo.callback.StringCallback | |||||
| import com.lzy.okgo.model.Response | |||||
| import com.yzx.webebook.MainActivity | import com.yzx.webebook.MainActivity | ||||
| import com.yzx.webebook.R | import com.yzx.webebook.R | ||||
| import com.yzx.webebook.activity.base.BaseActivity | import com.yzx.webebook.activity.base.BaseActivity | ||||
| import com.yzx.webebook.model.BaseBean | |||||
| import com.yzx.webebook.model.Version | |||||
| import com.yzx.webebook.presenter.base.BasePresenter | import com.yzx.webebook.presenter.base.BasePresenter | ||||
| import com.yzx.webebook.widget.BaseDialog | import com.yzx.webebook.widget.BaseDialog | ||||
| import kotlinx.android.synthetic.main.activity_web.* | import kotlinx.android.synthetic.main.activity_web.* | ||||
| @@ -28,6 +41,7 @@ import org.jetbrains.anko.find | |||||
| import org.jetbrains.anko.startActivity | import org.jetbrains.anko.startActivity | ||||
| import org.jetbrains.anko.toast | import org.jetbrains.anko.toast | ||||
| import org.json.JSONObject | import org.json.JSONObject | ||||
| import java.util.* | |||||
| /** | /** | ||||
| * 类名:WebActivity | * 类名:WebActivity | ||||
| @@ -63,28 +77,90 @@ class WebActivity : BaseActivity<BasePresenter<*>>() { | |||||
| } | } | ||||
| private fun checkVersion(): Unit { | private fun checkVersion(): Unit { | ||||
| val url = | |||||
| "https://filea.oa.qbjjyyun.net/edufile/download?uniqueKey=22de6670beaa78a822ae4a95bdb2c6f5" | |||||
| val test = "192.168.69.112:9009" | |||||
| val online = "https://oa.qbjjyyun.net/api" | |||||
| val BASE_URL = online | |||||
| OkGo.post<String>("$BASE_URL/parent/common/getInkBottleMaxVersion") | |||||
| .tag(this) | |||||
| .execute(object : StringCallback() { | |||||
| override fun onSuccess(response: Response<String>) { | |||||
| val json = response.body() | |||||
| Log.d("checkVersion", "onSuccess: ${json}") | |||||
| val resultType = object : TypeToken<BaseBean<Version>>() {}.type | |||||
| val gson = Gson() | |||||
| val res = gson.fromJson<BaseBean<Version>>(json, resultType) | |||||
| if (res.code == 0) { | |||||
| val appVersion = AppUtils.getAppVersionName() | |||||
| val appVersionCode = AppUtils.getAppVersionCode() | |||||
| val versionCode = res?.data?.version_code ?: 0 | |||||
| val curr = Date().time | |||||
| val lastTipTime = SPUtils.getInstance() | |||||
| .getLong("last_tip_time${res.data.version_code}", 0) | |||||
| if (versionCode > appVersionCode) { //有新版本 | |||||
| if (res.data.type == 1) { //强制升级 | |||||
| updateApp(res.data) | |||||
| } else if (curr - lastTipTime > 24 * 60 * 60 * 1000) { //非强制一天以内提示一次 | |||||
| updateApp(res.data) | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| }) | |||||
| } | |||||
| private fun updateApp(version: Version) { | |||||
| AllenVersionChecker | AllenVersionChecker | ||||
| .getInstance() | .getInstance() | ||||
| .downloadOnly( | .downloadOnly( | ||||
| UIData.create() | UIData.create() | ||||
| .setTitle("检测到新版本") | .setTitle("检测到新版本") | ||||
| .setContent("1.优化了笔记的体验\n2.解决了若干已知bug\n") | |||||
| .setDownloadUrl(url) | |||||
| .setContent(version.explain) | |||||
| .setDownloadUrl(version.app_src) | |||||
| ) | ) | ||||
| .setCustomVersionDialogListener { context, versionBundle -> | .setCustomVersionDialogListener { context, versionBundle -> | ||||
| val dialog = BaseDialog(context, R.style.BaseDialog, R.layout.version_dialog) | val dialog = BaseDialog(context, R.style.BaseDialog, R.layout.version_dialog) | ||||
| val title = dialog.find<TextView>(R.id.tv_title) | val title = dialog.find<TextView>(R.id.tv_title) | ||||
| title.text = "检测到新版本" | title.text = "检测到新版本" | ||||
| val content = dialog.find<TextView>(R.id.tv_msg) | val content = dialog.find<TextView>(R.id.tv_msg) | ||||
| content.text = "1.优化了笔记的体验\n2.解决了若干已知bug\n" | |||||
| dialog.window?.setDimAmount(0.1f) | |||||
| content.text = version.explain | |||||
| dialog.window?.setDimAmount(0.5f) | |||||
| val cancelBtn = dialog.find<View>(R.id.cancel_btn) | val cancelBtn = dialog.find<View>(R.id.cancel_btn) | ||||
| //cancelBtn.visibility = View.GONE | |||||
| if (version.type == 1) { | |||||
| cancelBtn.visibility = View.GONE | |||||
| } | |||||
| return@setCustomVersionDialogListener dialog | return@setCustomVersionDialogListener dialog | ||||
| } | } | ||||
| .setOnCancelListener { | |||||
| SPUtils.getInstance().put("last_tip_time${version.version_code}", Date().time) | |||||
| } | |||||
| .setCustomDownloadingDialogListener(object : CustomDownloadingDialogListener { | |||||
| @SuppressLint("SetTextI18n") | |||||
| override fun updateUI(dialog: Dialog?, progress: Int, versionBundle: UIData?) { | |||||
| val tvProgress: TextView = dialog!!.findViewById(R.id.tv_progress) | |||||
| val progressBar: ContentLoadingProgressBar = dialog.findViewById(R.id.pb) | |||||
| progressBar.progress = progress | |||||
| tvProgress.text = "$progress%" | |||||
| } | |||||
| override fun getCustomDownloadingDialog( | |||||
| context: Context?, | |||||
| progress: Int, | |||||
| versionBundle: UIData? | |||||
| ): Dialog { | |||||
| return BaseDialog( | |||||
| context!!, | |||||
| R.style.BaseDialog, | |||||
| R.layout.download_dialog | |||||
| ) | |||||
| } | |||||
| }) | |||||
| .executeMission(this) | .executeMission(this) | ||||
| } | } | ||||
| @@ -101,7 +177,7 @@ class WebActivity : BaseActivity<BasePresenter<*>>() { | |||||
| } | } | ||||
| btnBack.setOnClickListener { onBackPressed() } | btnBack.setOnClickListener { onBackPressed() } | ||||
| btnClose.setOnClickListener { | btnClose.setOnClickListener { | ||||
| finish() | |||||
| webView.loadUrl(url) | |||||
| } | } | ||||
| btnRefresh.setOnClickListener { | btnRefresh.setOnClickListener { | ||||
| webView.reload() | webView.reload() | ||||
| @@ -171,9 +247,11 @@ class WebActivity : BaseActivity<BasePresenter<*>>() { | |||||
| if (view.canGoBack()) { | if (view.canGoBack()) { | ||||
| //btnClose.visibility = View.VISIBLE | //btnClose.visibility = View.VISIBLE | ||||
| btnBack.visibility = View.VISIBLE | btnBack.visibility = View.VISIBLE | ||||
| btnClose.visibility = View.VISIBLE | |||||
| } else { | } else { | ||||
| //btnClose.visibility = View.GONE | //btnClose.visibility = View.GONE | ||||
| btnBack.visibility = View.GONE | btnBack.visibility = View.GONE | ||||
| btnClose.visibility = View.GONE | |||||
| } | } | ||||
| } | } | ||||
| } else { | } else { | ||||
| @@ -203,7 +281,6 @@ class WebActivity : BaseActivity<BasePresenter<*>>() { | |||||
| override fun initData() { | override fun initData() { | ||||
| webView.loadUrl(url) | webView.loadUrl(url) | ||||
| // checkVersion() | |||||
| } | } | ||||
| override fun initPresenter(): BasePresenter<*>? { | override fun initPresenter(): BasePresenter<*>? { | ||||
| @@ -213,6 +290,7 @@ class WebActivity : BaseActivity<BasePresenter<*>>() { | |||||
| override fun onResume() { | override fun onResume() { | ||||
| super.onResume() | super.onResume() | ||||
| webView.onResume() | webView.onResume() | ||||
| checkVersion() | |||||
| } | } | ||||
| override fun onPause() { | override fun onPause() { | ||||
| @@ -0,0 +1,8 @@ | |||||
| package com.yzx.webebook.model | |||||
| data class BaseBean<T>( | |||||
| var code: Int, | |||||
| var msg: String, | |||||
| val data: T, | |||||
| val list: MutableList<T> | |||||
| ) | |||||
| @@ -0,0 +1,11 @@ | |||||
| package com.yzx.webebook.model | |||||
| class Version { | |||||
| var version: String = "" | |||||
| var version_code: Int = 0 | |||||
| var id: Int = 0 | |||||
| var type: Int = 0 | |||||
| var explain: String = "" | |||||
| var app_src: String = "" | |||||
| var status: Int = 0 | |||||
| } | |||||
| @@ -0,0 +1,22 @@ | |||||
| package com.yzx.webebook.presenter.base | |||||
| import com.google.gson.Gson | |||||
| import com.google.gson.reflect.TypeToken | |||||
| import com.lzy.okgo.callback.AbsCallback | |||||
| import com.lzy.okgo.convert.StringConvert | |||||
| import com.yzx.webebook.model.BaseBean | |||||
| import okhttp3.Response | |||||
| abstract class JsonCallBack<T> : AbsCallback<BaseBean<T>>() { | |||||
| private val convert = StringConvert() | |||||
| override fun convertResponse(response: Response?): BaseBean<T> { | |||||
| val json: String = convert.convertResponse(response) | |||||
| val resultType = object : TypeToken<BaseBean<T>>() {}.type | |||||
| val gson = Gson() | |||||
| val fromJson = gson.fromJson<BaseBean<T>>(json, resultType) | |||||
| return fromJson | |||||
| } | |||||
| } | |||||
| @@ -11,6 +11,5 @@ class BaseDialog(context: Context, themeResId: Int, res: Int) : Dialog(context, | |||||
| this.res = res | this.res = res | ||||
| setCanceledOnTouchOutside(false) | setCanceledOnTouchOutside(false) | ||||
| setCancelable(false) | setCancelable(false) | ||||
| window?.setDimAmount(0f) | |||||
| } | } | ||||
| } | } | ||||
| @@ -0,0 +1,8 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <shape xmlns:android="http://schemas.android.com/apk/res/android"> | |||||
| <solid android:color="#FFFFFF" /> | |||||
| <stroke | |||||
| android:width="11dp" | |||||
| android:color="#000000" /> | |||||
| </shape> | |||||
| @@ -62,7 +62,7 @@ | |||||
| android:layout_marginTop="@dimen/d_20" | android:layout_marginTop="@dimen/d_20" | ||||
| android:hint="输入网址" | android:hint="输入网址" | ||||
| android:paddingHorizontal="15dp" | android:paddingHorizontal="15dp" | ||||
| android:text="http://192.168.69.113:8098/"/> | |||||
| android:text="http://192.168.69.112:8098/"/> | |||||
| <androidx.appcompat.widget.AppCompatButton | <androidx.appcompat.widget.AppCompatButton | ||||
| android:id="@+id/btn3" | android:id="@+id/btn3" | ||||
| @@ -29,8 +29,8 @@ | |||||
| android:layout_height="@dimen/title_height" | android:layout_height="@dimen/title_height" | ||||
| android:layout_toEndOf="@+id/btnBack" | android:layout_toEndOf="@+id/btnBack" | ||||
| android:scaleType="centerInside" | android:scaleType="centerInside" | ||||
| android:src="@mipmap/ic_close" | |||||
| android:visibility="visible" /> | |||||
| android:src="@mipmap/ic_home_def" | |||||
| android:visibility="gone" /> | |||||
| <ImageView | <ImageView | ||||
| android:id="@+id/btnRefresh" | android:id="@+id/btnRefresh" | ||||
| @@ -0,0 +1,46 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | |||||
| android:layout_width="match_parent" | |||||
| android:layout_height="wrap_content" | |||||
| android:orientation="vertical" | |||||
| android:padding="20dp"> | |||||
| <TextView | |||||
| android:layout_width="match_parent" | |||||
| android:layout_height="wrap_content" | |||||
| android:paddingBottom="12dp" | |||||
| android:text="新版本更新" | |||||
| android:textColor="#000" /> | |||||
| <androidx.core.widget.ContentLoadingProgressBar | |||||
| android:id="@+id/pb" | |||||
| style="?android:attr/progressBarStyleHorizontal" | |||||
| android:layout_width="match_parent" | |||||
| android:layout_height="15dp" | |||||
| android:max="100" | |||||
| android:progress="0" | |||||
| android:progressDrawable="@drawable/progressbar_horizontal" /> | |||||
| <RelativeLayout | |||||
| android:layout_width="match_parent" | |||||
| android:layout_height="wrap_content" | |||||
| android:layout_marginTop="10dp" | |||||
| android:orientation="horizontal"> | |||||
| <TextView | |||||
| android:layout_width="wrap_content" | |||||
| android:layout_height="wrap_content" | |||||
| android:text="@string/versionchecklib_downloading" | |||||
| android:textColor="@color/versionchecklib_theme_color" | |||||
| android:textSize="15sp" /> | |||||
| <TextView | |||||
| android:id="@+id/tv_progress" | |||||
| android:layout_width="wrap_content" | |||||
| android:layout_height="wrap_content" | |||||
| android:layout_alignParentRight="true" | |||||
| android:text="@string/versionchecklib_progress" | |||||
| android:textColor="@color/versionchecklib_theme_color" | |||||
| android:textSize="15sp" /> | |||||
| </RelativeLayout> | |||||
| </LinearLayout> | |||||
| @@ -31,7 +31,7 @@ | |||||
| android:layout_marginTop="10dp" | android:layout_marginTop="10dp" | ||||
| android:text="@string/update_title" | android:text="@string/update_title" | ||||
| android:textColor="@android:color/black" | android:textColor="@android:color/black" | ||||
| android:textSize="13sp" /> | |||||
| android:textSize="18sp" /> | |||||
| <TextView | <TextView | ||||
| android:id="@+id/tv_msg" | android:id="@+id/tv_msg" | ||||
| @@ -40,7 +40,7 @@ | |||||
| android:layout_marginTop="10dp" | android:layout_marginTop="10dp" | ||||
| android:text="@string/updatecontent" | android:text="@string/updatecontent" | ||||
| android:textColor="#666" | android:textColor="#666" | ||||
| android:textSize="12sp" /> | |||||
| android:textSize="16sp" /> | |||||
| <LinearLayout | <LinearLayout | ||||
| android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
| @@ -61,6 +61,7 @@ | |||||
| android:layout_weight="1" | android:layout_weight="1" | ||||
| android:background="@drawable/shape_corner_plain" | android:background="@drawable/shape_corner_plain" | ||||
| android:text="取消" | android:text="取消" | ||||
| android:textSize="16sp" | |||||
| android:textColor="@android:color/black" /> | android:textColor="@android:color/black" /> | ||||
| </FrameLayout> | </FrameLayout> | ||||
| @@ -72,6 +73,7 @@ | |||||
| android:layout_weight="1" | android:layout_weight="1" | ||||
| android:background="@drawable/shape_corner" | android:background="@drawable/shape_corner" | ||||
| android:text="立即升级" | android:text="立即升级" | ||||
| android:textSize="16sp" | |||||
| android:textColor="@android:color/white" /> | android:textColor="@android:color/white" /> | ||||
| </LinearLayout> | </LinearLayout> | ||||
| @@ -11,11 +11,8 @@ | |||||
| <style name="BaseDialog" parent="android:Theme.Light"> | <style name="BaseDialog" parent="android:Theme.Light"> | ||||
| <item name="android:windowFrame">@null</item> | <item name="android:windowFrame">@null</item> | ||||
| <item name="android:windowNoTitle">true</item> | <item name="android:windowNoTitle">true</item> | ||||
| <item name="android:windowBackground">@android:color/transparent</item> | |||||
| <item name="android:background">@android:color/transparent</item> | <item name="android:background">@android:color/transparent</item> | ||||
| <item name="android:windowIsFloating">true</item> | <item name="android:windowIsFloating">true</item> | ||||
| <item name="android:windowContentOverlay">@null</item> | <item name="android:windowContentOverlay">@null</item> | ||||
| <item name="android:backgroundDimEnabled">true</item> | |||||
| <item name="android:backgroundDimAmount">0.1</item> | |||||
| </style> | </style> | ||||
| </resources> | </resources> | ||||
| @@ -6,7 +6,8 @@ buildscript { | |||||
| repositories { | repositories { | ||||
| google() | google() | ||||
| jcenter() | jcenter() | ||||
| maven { url 'https://jitpack.io' } | |||||
| maven { url 'https://dl.bintray.com/umsdk/release' } | |||||
| } | } | ||||
| dependencies { | dependencies { | ||||
| classpath 'com.android.tools.build:gradle:3.6.3' | classpath 'com.android.tools.build:gradle:3.6.3' | ||||
| @@ -21,6 +22,7 @@ allprojects { | |||||
| google() | google() | ||||
| jcenter() | jcenter() | ||||
| maven { url 'https://jitpack.io' } | maven { url 'https://jitpack.io' } | ||||
| maven { url 'https://dl.bintray.com/umsdk/release' } | |||||
| } | } | ||||
| } | } | ||||
| @@ -91,3 +91,13 @@ | |||||
| -dontwarn io.bugtags.** | -dontwarn io.bugtags.** | ||||
| -dontwarn org.apache.http.** | -dontwarn org.apache.http.** | ||||
| -dontwarn android.net.http.AndroidHttpClient | -dontwarn android.net.http.AndroidHttpClient | ||||
| -keep class com.umeng.** {*;} | |||||
| -keepclassmembers class * { | |||||
| public <init> (org.json.JSONObject); | |||||
| } | |||||
| -keepclassmembers enum * { | |||||
| public static **[] values(); | |||||
| public static ** valueOf(java.lang.String); | |||||
| } | |||||