Commit 4a0909ac authored by wanglei's avatar wanglei

Initial commit

parent 3ba89098
...@@ -4,11 +4,11 @@ plugins { ...@@ -4,11 +4,11 @@ plugins {
} }
android { android {
namespace 'com.base.smartfilemanager' namespace 'com.base.superfilemanager'
compileSdk 34 compileSdk 34
defaultConfig { defaultConfig {
applicationId "com.base.smartfilemanager" applicationId "com.base.superfilemanager"
minSdk 24 minSdk 24
targetSdk 34 targetSdk 34
versionCode 1 versionCode 1
...@@ -48,6 +48,11 @@ dependencies { ...@@ -48,6 +48,11 @@ dependencies {
androidTestImplementation libs.androidx.junit androidTestImplementation libs.androidx.junit
androidTestImplementation libs.androidx.espresso.core androidTestImplementation libs.androidx.espresso.core
implementation("com.facebook.android:facebook-android-sdk:[8,9)")
implementation platform('com.google.firebase:firebase-bom:32.3.1')
implementation 'com.google.firebase:firebase-analytics:21.6.2'
implementation("com.google.firebase:firebase-messaging")
implementation("com.blankj:utilcodex:1.31.1") implementation("com.blankj:utilcodex:1.31.1")
implementation("com.squareup.okhttp3:okhttp:4.9.0") implementation("com.squareup.okhttp3:okhttp:4.9.0")
implementation("com.squareup.okhttp3:logging-interceptor:4.9.0") implementation("com.squareup.okhttp3:logging-interceptor:4.9.0")
......
{
"project_info": {
"project_number": "993178188325",
"project_id": "testcleanmaster",
"storage_bucket": "testcleanmaster.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:993178188325:android:a7986c2607f23024825dcc",
"android_client_info": {
"package_name": "com.base.superfilemanager"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": "AIzaSyCY5uqNx8qS5ZPvSIknbh2nH2v5vjzCmPI"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": []
}
}
}
],
"configuration_version": "1"
}
\ No newline at end of file
This diff is collapsed.
package com.base.smartfilemanager package com.base.superfilemanager
import androidx.test.platform.app.InstrumentationRegistry import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4
......
...@@ -44,6 +44,10 @@ ...@@ -44,6 +44,10 @@
android:screenOrientation="portrait" android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
</application> </application>
</manifest> </manifest>
\ No newline at end of file
package com.base.smartfilemanager package com.base.superfilemanager
import android.app.Application import android.app.Application
......
package com.base.smartfilemanager package com.base.superfilemanager
class MyApplication : BaseApplication() { class MyApplication : BaseApplication() {
override fun init() { override fun init() {
......
package com.base.smartfilemanager.activity package com.base.superfilemanager.activity
import android.os.Bundle
import android.view.View import android.view.View
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.DividerItemDecoration
import com.base.smartfilemanager.R import com.base.superfilemanager.adapter.FileBrowseAdapter
import com.base.smartfilemanager.adapter.FileBrowseAdapter import com.base.superfilemanager.bean.FileBean
import com.base.smartfilemanager.bean.FileBean import com.base.superfilemanager.bean.FileCategoryBean
import com.base.smartfilemanager.bean.FileCategoryBean import com.base.superfilemanager.bean.FileCategoryBean.Companion.APK
import com.base.smartfilemanager.bean.FileCategoryBean.Companion.APK import com.base.superfilemanager.bean.FileCategoryBean.Companion.Audio
import com.base.smartfilemanager.bean.FileCategoryBean.Companion.Audio import com.base.superfilemanager.bean.FileCategoryBean.Companion.DOC
import com.base.smartfilemanager.bean.FileCategoryBean.Companion.DOC import com.base.superfilemanager.bean.FileCategoryBean.Companion.Image
import com.base.smartfilemanager.bean.FileCategoryBean.Companion.Image import com.base.superfilemanager.bean.FileCategoryBean.Companion.PDF
import com.base.smartfilemanager.bean.FileCategoryBean.Companion.PDF import com.base.superfilemanager.bean.FileCategoryBean.Companion.PPT
import com.base.smartfilemanager.bean.FileCategoryBean.Companion.PPT import com.base.superfilemanager.bean.FileCategoryBean.Companion.TXT
import com.base.smartfilemanager.bean.FileCategoryBean.Companion.TXT import com.base.superfilemanager.bean.FileCategoryBean.Companion.Video
import com.base.smartfilemanager.bean.FileCategoryBean.Companion.Video import com.base.superfilemanager.bean.FileCategoryBean.Companion.XLS
import com.base.smartfilemanager.bean.FileCategoryBean.Companion.XLS import com.base.superfilemanager.bean.FileCategoryBean.Companion.ZIP
import com.base.smartfilemanager.bean.FileCategoryBean.Companion.ZIP import com.base.superfilemanager.databinding.ActivityFileCategoryBinding
import com.base.smartfilemanager.databinding.ActivityFileCategoryBinding import com.base.superfilemanager.helps.BaseActivity
import com.base.smartfilemanager.helps.BaseActivity import com.base.superfilemanager.helps.file.FileEx.deleteDirectory
import com.base.smartfilemanager.helps.file.FileEx.deleteDirectory import com.base.superfilemanager.helps.file.FileHelps
import com.base.smartfilemanager.helps.file.FileHelps import com.base.superfilemanager.view.FileDeleteDialog.showFileDeleteDialog
import com.base.smartfilemanager.view.FileDeleteDialog
import com.base.smartfilemanager.view.FileDeleteDialog.showFileDeleteDialog
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.async import kotlinx.coroutines.async
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
......
package com.base.smartfilemanager.activity package com.base.superfilemanager.activity
import android.graphics.Typeface import android.graphics.Typeface
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2 import androidx.viewpager2.widget.ViewPager2
import com.base.smartfilemanager.fragment.FileCategoryFragment import com.base.superfilemanager.fragment.FileCategoryFragment
import com.base.smartfilemanager.databinding.ActivityMainBinding import com.base.superfilemanager.databinding.ActivityMainBinding
import com.base.smartfilemanager.helps.BaseActivity import com.base.superfilemanager.helps.BaseActivity
class MainActivity : BaseActivity<ActivityMainBinding>() { class MainActivity : BaseActivity<ActivityMainBinding>() {
......
package com.base.superfilemanager.activity
import android.annotation.SuppressLint
import android.graphics.Color
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.core.view.updatePadding
import com.base.superfilemanager.databinding.ActivityLayoutWebPrivacyBinding
import com.base.superfilemanager.helps.BaseActivity
import com.blankj.utilcode.util.BarUtils
class PrivacyWebActivity : BaseActivity<ActivityLayoutWebPrivacyBinding>() {
override val binding: ActivityLayoutWebPrivacyBinding by lazy {
ActivityLayoutWebPrivacyBinding.inflate(layoutInflater)
}
@SuppressLint("SetJavaScriptEnabled")
override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
binding.idWeb.settings.setJavaScriptEnabled(true)
binding.idWeb.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
view?.loadUrl(url!!)
return true
}
}
binding.idWeb.loadUrl("")
binding.idBack.setOnClickListener {
finishToMain()
}
}
}
\ No newline at end of file
package com.base.superfilemanager.activity.splash
import android.app.Activity
import android.content.Intent
import android.net.Uri
import android.text.SpannableString
import android.text.Spanned
import android.text.style.UnderlineSpan
import androidx.core.view.isVisible
import com.base.superfilemanager.databinding.ActivitySplashBinding
import com.base.superfilemanager.helps.ConfigHelper
class PrivacyAgreementManager {
private val binding: ActivitySplashBinding
private val context: Activity
private val listener: onUserPrivacyAggreementListener
constructor(binding: ActivitySplashBinding, context: Activity, listener: onUserPrivacyAggreementListener) {
this.binding = binding
this.context = context
this.listener = listener
initView()
}
private fun initView() {
val spannableString = SpannableString("Privacy Policy")
spannableString.setSpan(
UnderlineSpan(),
0,
spannableString.length,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
)
binding.idTvPrivacyPolicy.text = spannableString
binding.idTvPrivacyPolicy.setOnClickListener {
val intent = Intent(
Intent.ACTION_VIEW,
Uri.parse("https://sites.google.com/view/esuper-file-manager/home")
)
context.startActivity(intent)
}
binding.idTvStart.setOnClickListener {
binding.idTvStart.isVisible = false
binding.idLlJindu.isVisible = true
binding.idLlYinsi.isVisible = false
ConfigHelper.ifAgreePrivacy = true
// EventHelper.event("click_start_to_use")
// EventHelper.event("page_${javaClass.simpleName}")
listener.onAgreePrivacy()
}
}
interface onUserPrivacyAggreementListener {
fun onAgreePrivacy()
}
}
\ No newline at end of file
package com.base.smartfilemanager.activity.splash package com.base.superfilemanager.activity.splash
import android.os.Handler import android.os.Handler
import com.base.smartfilemanager.databinding.ActivitySplashBinding import com.base.superfilemanager.databinding.ActivitySplashBinding
import com.blankj.utilcode.util.SPUtils import com.blankj.utilcode.util.SPUtils
class ProgressManager { class ProgressManager {
......
package com.base.smartfilemanager.activity.splash package com.base.superfilemanager.activity.splash
import android.Manifest import android.Manifest
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.os.Build import android.os.Build
import android.os.Bundle
import android.os.Handler import android.os.Handler
import androidx.activity.enableEdgeToEdge
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity import androidx.core.view.isVisible
import androidx.core.view.ViewCompat import com.base.superfilemanager.activity.MainActivity
import androidx.core.view.WindowInsetsCompat import com.base.superfilemanager.databinding.ActivitySplashBinding
import com.base.smartfilemanager.R import com.base.superfilemanager.helps.BaseActivity
import com.base.smartfilemanager.activity.MainActivity import com.base.superfilemanager.helps.ConfigHelper
import com.base.smartfilemanager.databinding.ActivitySplashBinding
import com.base.smartfilemanager.helps.BaseActivity
import com.blankj.utilcode.util.BarUtils import com.blankj.utilcode.util.BarUtils
@SuppressLint("CustomSplashScreen") @SuppressLint("CustomSplashScreen")
class SplashActivity : BaseActivity<ActivitySplashBinding>(), ProgressManager.ProgressListener { class SplashActivity : BaseActivity<ActivitySplashBinding>(), ProgressManager.ProgressListener,
PrivacyAgreementManager.onUserPrivacyAggreementListener {
override val binding: ActivitySplashBinding by lazy { override val binding: ActivitySplashBinding by lazy {
ActivitySplashBinding.inflate(layoutInflater) ActivitySplashBinding.inflate(layoutInflater)
...@@ -43,7 +40,14 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(), ProgressManager.Pr ...@@ -43,7 +40,14 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(), ProgressManager.Pr
return return
} }
mProgressManager = ProgressManager(binding, this) mProgressManager = ProgressManager(binding, this)
mProgressManager?.startProgress() if (ConfigHelper.ifAgreePrivacy) {
binding.idTvStart.isVisible = false
binding.idLlJindu.isVisible = true
binding.idLlYinsi.isVisible = false
onAgreePrivacy()
} else {
PrivacyAgreementManager(binding, this, this)
}
} }
override fun onProgressMax() { override fun onProgressMax() {
...@@ -54,4 +58,9 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(), ProgressManager.Pr ...@@ -54,4 +58,9 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(), ProgressManager.Pr
} }
override fun onAgreePrivacy() {
mProgressManager?.startProgress()
}
} }
\ No newline at end of file
package com.base.smartfilemanager.adapter package com.base.superfilemanager.adapter
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context import android.content.Context
...@@ -7,10 +7,10 @@ import android.view.ViewGroup ...@@ -7,10 +7,10 @@ import android.view.ViewGroup
import android.widget.ImageView import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.ViewHolder import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.base.smartfilemanager.R import com.base.superfilemanager.R
import com.base.smartfilemanager.bean.FileBean import com.base.superfilemanager.bean.FileBean
import com.base.smartfilemanager.databinding.ItemFileListBinding import com.base.superfilemanager.databinding.ItemFileListBinding
import com.base.smartfilemanager.view.XmlEx.inflate import com.base.superfilemanager.view.XmlEx.inflate
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
class FileBrowseAdapter(private val select: (size: Int) -> Unit) : RecyclerView.Adapter<FileBrowseAdapter.FB>() { class FileBrowseAdapter(private val select: (size: Int) -> Unit) : RecyclerView.Adapter<FileBrowseAdapter.FB>() {
......
package com.base.smartfilemanager.adapter package com.base.superfilemanager.adapter
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.ViewHolder import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.base.smartfilemanager.R import com.base.superfilemanager.R
import com.base.smartfilemanager.bean.FileCategoryBean import com.base.superfilemanager.bean.FileCategoryBean
import com.base.smartfilemanager.databinding.ItemFileCategoryDocBinding import com.base.superfilemanager.databinding.ItemFileCategoryDocBinding
import com.base.smartfilemanager.databinding.ItemFileCategoryMediaBinding import com.base.superfilemanager.databinding.ItemFileCategoryMediaBinding
import com.base.smartfilemanager.databinding.ItemRecentMediaBinding import com.base.superfilemanager.databinding.ItemRecentMediaBinding
import com.base.smartfilemanager.view.XmlEx.inflate import com.base.superfilemanager.view.XmlEx.inflate
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
class FileCategoryAdapter(val mode: String, val click: (key: String) -> Unit) : RecyclerView.Adapter<FileCategoryAdapter.DC>() { class FileCategoryAdapter(val mode: String, val click: (key: String) -> Unit) : RecyclerView.Adapter<FileCategoryAdapter.DC>() {
......
package com.base.smartfilemanager.bean package com.base.superfilemanager.bean
data class FileBean( data class FileBean(
var name: String = "", var name: String = "",
......
package com.base.smartfilemanager.bean package com.base.superfilemanager.bean
data class FileCategoryBean( data class FileCategoryBean(
val key: String="", val key: String="",
......
package com.base.smartfilemanager.bean package com.base.superfilemanager.bean
data class ImageDataBean( data class ImageDataBean(
val path: String, val path: String,
......
package com.base.smartfilemanager.fragment package com.base.superfilemanager.fragment
import android.content.Intent import android.content.Intent
import android.os.Build import android.os.Build
...@@ -6,14 +6,14 @@ import android.os.Environment ...@@ -6,14 +6,14 @@ import android.os.Environment
import android.view.View import android.view.View
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import com.base.smartfilemanager.R import com.base.superfilemanager.R
import com.base.smartfilemanager.activity.FileCategoryActivity import com.base.superfilemanager.activity.FileCategoryActivity
import com.base.smartfilemanager.activity.MainActivity import com.base.superfilemanager.activity.MainActivity
import com.base.smartfilemanager.adapter.FileCategoryAdapter import com.base.superfilemanager.adapter.FileCategoryAdapter
import com.base.smartfilemanager.bean.FileCategoryBean import com.base.superfilemanager.bean.FileCategoryBean
import com.base.smartfilemanager.databinding.FragmentFileCategoryBinding import com.base.superfilemanager.databinding.FragmentFileCategoryBinding
import com.base.smartfilemanager.helps.BaseFragment import com.base.superfilemanager.helps.BaseFragment
import com.base.smartfilemanager.helps.file.MediaStoreEx import com.base.superfilemanager.helps.file.MediaStoreEx
import com.blankj.utilcode.constant.PermissionConstants import com.blankj.utilcode.constant.PermissionConstants
import com.blankj.utilcode.util.PermissionUtils import com.blankj.utilcode.util.PermissionUtils
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
......
package com.base.smartfilemanager.helps package com.base.superfilemanager.helps
import android.util.Base64 import android.util.Base64
import java.security.SecureRandom import java.security.SecureRandom
...@@ -8,7 +8,7 @@ import javax.crypto.spec.SecretKeySpec ...@@ -8,7 +8,7 @@ import javax.crypto.spec.SecretKeySpec
object AESHelper { object AESHelper {
private const val aesKey = "nbutdub5lsfdkitt" private const val aesKey = "tqdd8p5oplj9vj3y"
private val cipher by lazy { private val cipher by lazy {
Cipher.getInstance("AES/GCM/NoPadding") Cipher.getInstance("AES/GCM/NoPadding")
......
package com.base.smartfilemanager.helps package com.base.superfilemanager.helps
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import com.base.smartfilemanager.helps.KotlinExt.decode import com.base.superfilemanager.helps.KotlinExt.decode
import com.noober.background.view.BLTextView import com.noober.background.view.BLTextView
......
package com.base.smartfilemanager.helps package com.base.superfilemanager.helps
import android.app.AppOpsManager import android.app.AppOpsManager
import android.app.Dialog import android.app.Dialog
...@@ -12,8 +12,8 @@ import android.provider.Settings ...@@ -12,8 +12,8 @@ import android.provider.Settings
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.viewbinding.ViewBinding import androidx.viewbinding.ViewBinding
import com.base.smartfilemanager.activity.MainActivity import com.base.superfilemanager.activity.MainActivity
import com.base.smartfilemanager.view.DialogViews import com.base.superfilemanager.view.DialogViews
import com.blankj.utilcode.constant.PermissionConstants import com.blankj.utilcode.constant.PermissionConstants
import com.blankj.utilcode.util.ActivityUtils import com.blankj.utilcode.util.ActivityUtils
import com.blankj.utilcode.util.BarUtils import com.blankj.utilcode.util.BarUtils
......
package com.base.smartfilemanager.helps package com.base.superfilemanager.helps
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
......
package com.base.smartfilemanager.helps package com.base.superfilemanager.helps
import com.blankj.utilcode.util.AppUtils import com.blankj.utilcode.util.AppUtils
import com.blankj.utilcode.util.SPUtils import com.blankj.utilcode.util.SPUtils
...@@ -11,8 +11,8 @@ object ConfigHelper { ...@@ -11,8 +11,8 @@ object ConfigHelper {
// 域名 // 域名
const val eventUrl = "https://rp.cansole764cansole.xyz" const val eventUrl = "https://rp.denisjodion560.xyz"
const val apiUrl = "https://api.cansole764cansole.xyz" const val apiUrl = "https://api.denisjodion560.xyz"
// admob广告id // admob广告id
const val openAdmobId = "/6499/example/app-open" const val openAdmobId = "/6499/example/app-open"
...@@ -20,7 +20,7 @@ object ConfigHelper { ...@@ -20,7 +20,7 @@ object ConfigHelper {
const val nativeAdmobId = "ca-app-pub-3940256099942544/2247696110" const val nativeAdmobId = "ca-app-pub-3940256099942544/2247696110"
// 正式包名 // 正式包名
const val packageName = "com.kk.cleanmaster.file.cleanmaster.master" const val packageName = "com.kkzxaakk.filemanagerr.abcd"
val noLoadingActivities = listOf( val noLoadingActivities = listOf(
"full", // 过滤全屏广告 "full", // 过滤全屏广告
......
package com.base.smartfilemanager.helps package com.base.superfilemanager.helps
import android.os.Build import android.os.Build
import android.util.Log import android.util.Log
import com.base.smartfilemanager.helps.ConfigHelper.ifAgreePrivacy import com.base.superfilemanager.helps.ConfigHelper.ifAgreePrivacy
import com.blankj.utilcode.BuildConfig import com.blankj.utilcode.BuildConfig
import com.blankj.utilcode.util.AppUtils import com.blankj.utilcode.util.AppUtils
import com.blankj.utilcode.util.DeviceUtils import com.blankj.utilcode.util.DeviceUtils
...@@ -39,6 +39,7 @@ object EventHelper { ...@@ -39,6 +39,7 @@ object EventHelper {
ext: JSONObject? = null, ext: JSONObject? = null,
isSingleEvent: Boolean = false isSingleEvent: Boolean = false
) { ) {
return
if (!ifAgreePrivacy) { if (!ifAgreePrivacy) {
Log.e(TAG, "ifAgreePrivacy=$ifAgreePrivacy") Log.e(TAG, "ifAgreePrivacy=$ifAgreePrivacy")
return return
......
package com.base.smartfilemanager.helps package com.base.superfilemanager.helps
import android.view.View import android.view.View
import com.base.smartfilemanager.BaseApplication import com.base.superfilemanager.BaseApplication
import org.json.JSONObject import org.json.JSONObject
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
......
package com.base.smartfilemanager.helps.file package com.base.superfilemanager.helps.file
import java.io.File import java.io.File
import java.util.Stack import java.util.Stack
......
package com.base.smartfilemanager.helps.file package com.base.superfilemanager.helps.file
import android.os.Environment import android.os.Environment
import android.provider.MediaStore import android.provider.MediaStore
import android.text.TextUtils import android.text.TextUtils
import com.base.smartfilemanager.BaseApplication import com.base.superfilemanager.BaseApplication
import com.base.smartfilemanager.bean.FileBean import com.base.superfilemanager.bean.FileBean
import com.base.smartfilemanager.bean.ImageDataBean import com.base.superfilemanager.bean.ImageDataBean
import com.blankj.utilcode.util.FileUtils import com.blankj.utilcode.util.FileUtils
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.MainScope import kotlinx.coroutines.MainScope
......
package com.base.smartfilemanager.helps.file package com.base.superfilemanager.helps.file
import android.graphics.Bitmap import android.graphics.Bitmap
import android.graphics.BitmapFactory import android.graphics.BitmapFactory
import android.graphics.Color import android.graphics.Color
import android.media.ThumbnailUtils import android.media.ThumbnailUtils
import com.base.smartfilemanager.bean.ImageDataBean import com.base.superfilemanager.bean.ImageDataBean
import com.blankj.utilcode.util.ScreenUtils import com.blankj.utilcode.util.ScreenUtils
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
......
package com.base.smartfilemanager.helps.file package com.base.superfilemanager.helps.file
import android.content.ContentUris import android.content.ContentUris
import android.content.Context import android.content.Context
......
package com.base.smartfilemanager.view package com.base.superfilemanager.view
import android.app.Dialog import android.app.Dialog
import android.content.Context import android.content.Context
import android.graphics.Color import android.graphics.Color
import android.graphics.drawable.ColorDrawable import android.graphics.drawable.ColorDrawable
import android.view.LayoutInflater import android.view.LayoutInflater
import com.base.smartfilemanager.R import com.base.superfilemanager.R
import com.base.smartfilemanager.databinding.DialogPermissonOpenBinding import com.base.superfilemanager.databinding.DialogPermissonOpenBinding
import com.blankj.utilcode.util.SpanUtils import com.blankj.utilcode.util.SpanUtils
object DialogViews { object DialogViews {
......
package com.base.smartfilemanager.view package com.base.superfilemanager.view
import android.content.Context import android.content.Context
import android.text.SpannableString import android.text.SpannableString
...@@ -8,8 +8,8 @@ import android.view.LayoutInflater ...@@ -8,8 +8,8 @@ import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import com.base.smartfilemanager.R import com.base.superfilemanager.R
import com.base.smartfilemanager.databinding.DialogFileDeleteBinding import com.base.superfilemanager.databinding.DialogFileDeleteBinding
object FileDeleteDialog { object FileDeleteDialog {
......
package com.base.smartfilemanager.view package com.base.superfilemanager.view
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/white"/> <item android:drawable="@color/white" />
<item android:drawable="@drawable/splash_bg" /> <!-- <item android:drawable="@drawable/splash_bg" />-->
<item <item
android:top="130dp" android:gravity="top|center_horizontal"
android:gravity="top|center_horizontal"> android:top="130dp">
<bitmap <bitmap android:src="@drawable/qdylogo" />
android:src="@mipmap/icon_text" />
</item> </item>
</layer-list> </layer-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="14dp">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/id_back"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_centerVertical="true"
android:paddingHorizontal="12dp"
android:src="@drawable/fanhui"
android:tint="#333333" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Privacy Policy"
android:textColor="#333333"
android:textSize="17sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</RelativeLayout>
<WebView
android:id="@+id/id_web"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="14dp"
android:layout_weight="1"
android:padding="10dp" />
</LinearLayout>
\ No newline at end of file
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main" android:id="@+id/main"
android:background="@drawable/splash_bp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@drawable/splash_bp"
android:orientation="vertical" android:orientation="vertical"
tools:context=".activity.splash.SplashActivity"> tools:context=".activity.splash.SplashActivity">
...@@ -26,7 +26,20 @@ ...@@ -26,7 +26,20 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="49dp" android:layout_marginBottom="49dp"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:orientation="vertical"> android:orientation="vertical"
android:visibility="gone">
<TextView
android:id="@+id/tv_load"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:text="Loading..."
android:textColor="#333333"
android:textSize="15sp"
tools:ignore="HardcodedText" />
<ProgressBar <ProgressBar
android:id="@+id/pb" android:id="@+id/pb"
...@@ -37,17 +50,57 @@ ...@@ -37,17 +50,57 @@
android:progressDrawable="@drawable/shape_splash_s" /> android:progressDrawable="@drawable/shape_splash_s" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/id_ll_yinsi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="4dp"
android:text="By continuing you are agreeing to the"
android:textColor="#676767"
android:textSize="14sp"
tools:ignore="HardcodedText" />
<TextView <TextView
android:id="@+id/tv_load"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="18dp" android:text=" &amp; "
android:text="Loading..." android:visibility="gone"
android:textColor="#000000"
android:textSize="15sp"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
<TextView
android:id="@+id/id_tv_privacy_policy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Privacy Policy"
android:textColor="#676767"
android:textSize="14sp"
tools:ignore="HardcodedText" />
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
<com.noober.background.view.BLTextView
android:id="@+id/id_tv_start"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginHorizontal="40dp"
android:layout_marginBottom="49dp"
android:gravity="center"
android:text="START TO USE"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold"
android:visibility="visible"
app:bl_corners_radius="18dp"
app:bl_solid_color="#027CF6"
tools:ignore="HardcodedText" />
</LinearLayout> </LinearLayout>
\ No newline at end of file
...@@ -2,4 +2,5 @@ ...@@ -2,4 +2,5 @@
<!-- TODO: Remove or change this placeholder text --> <!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string> <string name="hello_blank_fragment">Hello blank fragment</string>
<string name="app_name">Super File Manager</string> <string name="app_name">Super File Manager</string>
<string name="facebook_app_id" translatable="false">486434960399485</string>
</resources> </resources>
\ No newline at end of file
package com.base.smartfilemanager package com.base.superfilemanager
import org.junit.Test import org.junit.Test
......
...@@ -24,5 +24,5 @@ dependencyResolutionManagement { ...@@ -24,5 +24,5 @@ dependencyResolutionManagement {
} }
} }
rootProject.name = "smart-file-manager" rootProject.name = "super-file-manager"
include ':app' include ':app'
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment