Skip to content

Commit

Permalink
增加账户系统,可保存浏览记录到服务器,修复部分bug
Browse files Browse the repository at this point in the history
  • Loading branch information
lang-v committed Nov 14, 2020
1 parent 20d6175 commit 31268fc
Show file tree
Hide file tree
Showing 63 changed files with 2,064 additions and 176 deletions.
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ android {
minSdkVersion 21
targetSdkVersion 30
versionCode 2
versionName "1.1.6r2"
versionName "1.1.7"

ndk {
//设置支持的SO库架构
Expand Down
4 changes: 4 additions & 0 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,10 @@
-keep class androidx.databinding*

-keep class androidx.room**
-keep class com.novel.qingwen.room.entity.*{*;}
-keep class com.novel.qingwen.room.dao.*{*;}
-keep class com.novel.qingwen.room.*{*;}
-keep class com.novel.qingwen.utils.*{*;}
-keep class com.novel.qingwen.viewmodel.*{*;}


Expand Down
Binary file modified app/release/app-release.apk
Binary file not shown.
2 changes: 1 addition & 1 deletion app/release/output-metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"type": "SINGLE",
"filters": [],
"versionCode": 2,
"versionName": "1.1.6r2",
"versionName": "1.1.7",
"outputFile": "app-release.apk"
}
]
Expand Down
45 changes: 20 additions & 25 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,17 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />


<!-- &lt;!&ndash;获取GSM(2g)、WCDMA(联通3g)等网络状态的信息 &ndash;&gt;-->
<!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />-->
<!-- &lt;!&ndash;获取wifi网络状态的信息 &ndash;&gt;-->
<!-- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />-->
<!-- &lt;!&ndash;保持CPU 运转,屏幕和键盘灯有可能是关闭的,用于文件上传和下载 &ndash;&gt;-->
<!-- <uses-permission android:name="android.permission.WAKE_LOCK" />-->
<!-- &lt;!&ndash;获取sd卡写的权限,用于文件上传和下载&ndash;&gt;-->
<!-- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />-->
<!-- &lt;!&ndash;允许读取手机状态 用于创建BmobInstallation&ndash;&gt;-->
<!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" />-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <!-- &lt;!&ndash;获取GSM(2g)、WCDMA(联通3g)等网络状态的信息 &ndash;&gt; -->
<!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> -->
<!-- &lt;!&ndash;获取wifi网络状态的信息 &ndash;&gt; -->
<!-- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> -->
<!-- &lt;!&ndash;保持CPU 运转,屏幕和键盘灯有可能是关闭的,用于文件上传和下载 &ndash;&gt; -->
<!-- <uses-permission android:name="android.permission.WAKE_LOCK" /> -->
<!-- &lt;!&ndash;获取sd卡写的权限,用于文件上传和下载&ndash;&gt; -->
<!-- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> -->
<!-- &lt;!&ndash;允许读取手机状态 用于创建BmobInstallation&ndash;&gt; -->
<!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" /> -->
<uses-permission
android:name="android.permission.READ_LOGS"
tools:ignore="ProtectedPermissions" />
Expand All @@ -36,10 +33,15 @@
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:targetApi="n">
<activity android:name=".view.activity.Register"></activity>
<activity
android:name=".view.activity.Login"
android:theme="@style/transparent" />
<activity android:name=".view.activity.UserInfoActivity" />
<activity
android:name=".view.activity.SettingActivity"
android:theme="@style/transparent"
android:label="设置" />
android:label="设置"
android:theme="@style/transparent" />
<activity
android:name=".view.activity.ReadActivity"
android:theme="@style/FullscreenTheme" />
Expand All @@ -49,7 +51,7 @@
android:theme="@style/transparent" />
<activity
android:name=".view.activity.ResumeActivity"
android:theme="@style/transparent" />
android:theme="@style/resumeActivity" />
<activity android:name=".view.activity.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
Expand All @@ -58,22 +60,15 @@
</intent-filter>
</activity>


<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
android:resource="@xml/provider_paths" />
</provider>

<!-- <provider-->
<!-- android:name="cn.bmob.v3.util.BmobContentProvider"-->
<!-- android:authorities="com.novel.qingwen.BmobContentProvider">-->
<!-- </provider>-->
</application>


</manifest>
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import android.text.TextUtils
import com.novel.qingwen.utils.BookShelfListUtil
import com.novel.qingwen.utils.ConfigUtil
import com.novel.qingwen.utils.RoomUtil
import com.novel.qingwen.utils.UserDataUtil
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
Expand All @@ -20,6 +21,7 @@ class MyApplication : Application() {
RoomUtil.init(this)
GlobalScope.launch(Dispatchers.Default) {
ConfigUtil.init()
UserDataUtil.init()
BookShelfListUtil.init()
}

Expand Down
3 changes: 0 additions & 3 deletions app/src/main/java/com/novel/qingwen/bmob/request/UserData.kt

This file was deleted.

3 changes: 0 additions & 3 deletions app/src/main/java/com/novel/qingwen/bmob/request/UserInfo.kt

This file was deleted.

This file was deleted.

This file was deleted.

7 changes: 7 additions & 0 deletions app/src/main/java/com/novel/qingwen/net/bean/Avatar.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.novel.qingwen.net.bean

data class Avatar(
val avatar: String,
val code: Int,
val msg: String
)
3 changes: 3 additions & 0 deletions app/src/main/java/com/novel/qingwen/net/bean/BaseResponse.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package com.novel.qingwen.net.bean

data class BaseResponse(var msg:String,var code:Int)
3 changes: 3 additions & 0 deletions app/src/main/java/com/novel/qingwen/net/bean/BookShelf.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package com.novel.qingwen.net.bean

data class BookShelf(val msg:String, val code:Int,var data:String?=null)
12 changes: 12 additions & 0 deletions app/src/main/java/com/novel/qingwen/net/bean/LoginResult.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.novel.qingwen.net.bean

data class LoginResult(
var avatar: String,
var code: Int,
var email: String,
var msg: String,
var nick: String,
val password: String,
var token: String,
var username: String
)
45 changes: 41 additions & 4 deletions app/src/main/java/com/novel/qingwen/net/service/Novel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@ package com.novel.qingwen.net.service
import com.novel.qingwen.net.bean.*
import okhttp3.ResponseBody
import retrofit2.Call
import retrofit2.http.GET
import retrofit2.http.HTTP
import retrofit2.http.Path
import retrofit2.http.Query
import retrofit2.http.*

interface Novel {
@HTTP(method = "GET", path = "BookFiles/Html/{pageid}/{novelid}/info.html", hasBody = false)
Expand Down Expand Up @@ -54,4 +51,44 @@ interface Novel {
@Path("status") status: String,
@Path("page") page: Int
):Call<BookStoreItem>

@FormUrlEncoded
@POST("login")
fun login(@Field("username") username:String,@Field("password") password:String):Call<LoginResult>

@FormUrlEncoded
@POST("register")
fun register(@Field("username") username:String,@Field("password") password:String):Call<LoginResult>

@FormUrlEncoded
@POST("pullavatar")
fun pullAvatar(@Field("token") token:String):Call<Avatar>

@FormUrlEncoded
@POST("pushavatar")
fun pushAvatar(@Field("token")token:String,@Field("avatar")avatar:String):Call<Avatar>

@FormUrlEncoded
@POST("pushdata")
fun pushData(@Field("token")token: String,@Field("data") data:String):Call<BookShelf>

@FormUrlEncoded
@POST("pulldata")
fun pullData(@Field("token")token: String):Call<BookShelf>

@FormUrlEncoded
@POST("changepassword")
fun change(@Field("username") username:String,
@Field("password") password: String,
@Field("newPassword") newPassword: String):Call<LoginResult>

@FormUrlEncoded
@POST("changeuserinfo")
fun change(@Field("token") token:String?,
@Field("nick") nick: String?,
@Field("email") email:String?,
@Field("avatar") avatar:String?):Call<LoginResult>

@GET("checkname")
fun checkName(@Query("username")username: String):Call<BaseResponse>
}
7 changes: 4 additions & 3 deletions app/src/main/java/com/novel/qingwen/room/AppDatabase.kt
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
package com.novel.qingwen.room

import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import com.novel.qingwen.room.dao.BookInfoDao
import com.novel.qingwen.room.dao.ChapterDao
import com.novel.qingwen.room.dao.ConfigDao
import com.novel.qingwen.room.dao.UserDataDao
import com.novel.qingwen.room.entity.BookInfo
import com.novel.qingwen.room.entity.Chapter
import com.novel.qingwen.room.entity.Config
import com.tencent.bugly.Bugly.applicationContext
import com.novel.qingwen.room.entity.UserData

@Database(entities = [Chapter::class,Config::class,BookInfo::class],version = 2,exportSchema = false)
@Database(entities = [Chapter::class,Config::class,BookInfo::class,UserData::class],version = 3,exportSchema = false)
abstract class AppDatabase:RoomDatabase() {
abstract fun chapterDao(): ChapterDao
abstract fun configDao():ConfigDao
abstract fun bookInfoDao():BookInfoDao
abstract fun userDataDao():UserDataDao
}
3 changes: 3 additions & 0 deletions app/src/main/java/com/novel/qingwen/room/dao/BookInfoDao.kt
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,7 @@ interface BookInfoDao {
@Query("delete from book_info where novelId=:id")
fun deleteById(id:Long)

@Query("delete from book_info")
fun deleteAll():Int

}
3 changes: 3 additions & 0 deletions app/src/main/java/com/novel/qingwen/room/dao/ChapterDao.kt
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,7 @@ interface ChapterDao {

@Insert
fun insertAll(vararg chapter: Chapter)

@Query("delete from BookChapter")
fun deleteAll():Int
}
24 changes: 24 additions & 0 deletions app/src/main/java/com/novel/qingwen/room/dao/UserDataDao.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.novel.qingwen.room.dao

import androidx.room.*
import com.novel.qingwen.room.entity.Config
import com.novel.qingwen.room.entity.UserData

@Dao
interface UserDataDao {
@Insert(entity = UserData::class)
fun insert(userData: UserData)

@Query("select * from UserData where id=:id")
fun loadById(id: Int = 0): UserData

@Query("update UserData set token=:token, username=:username, nick=:nick,email=:email,avatar=:avatar,password=:password where id=0")
fun update(
token: String,
username: String,
nick: String,
email: String,
avatar: String,
password: String
)
}
16 changes: 16 additions & 0 deletions app/src/main/java/com/novel/qingwen/room/entity/UserData.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.novel.qingwen.room.entity

import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey

@Entity(tableName = "UserData")
data class UserData(
@PrimaryKey val id:Int = 0,
@ColumnInfo(name = "token") var token: String,
@ColumnInfo(name = "username") var username: String,
@ColumnInfo(name = "nick") var nick: String,
@ColumnInfo(name = "password") var password: String,
@ColumnInfo(name = "email") var email: String,
@ColumnInfo(name = "avatar") var avatar: String
)
Loading

0 comments on commit 31268fc

Please sign in to comment.