Improve extenson & remove redundant utils
This commit is contained in:
75
app/src/main/java/com/aurora/extensions/Activity.kt
Normal file
75
app/src/main/java/com/aurora/extensions/Activity.kt
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
/*
|
||||||
|
* Aurora Store
|
||||||
|
* Copyright (C) 2021, Rahul Kumar Patel <whyorean@gmail.com>
|
||||||
|
*
|
||||||
|
* Aurora Store is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Aurora Store is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Aurora Store. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.aurora.extensions
|
||||||
|
|
||||||
|
import android.app.Activity
|
||||||
|
import android.content.Intent
|
||||||
|
import android.os.Build
|
||||||
|
import android.os.Bundle
|
||||||
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
|
||||||
|
|
||||||
|
fun AppCompatActivity.close() {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
|
finishAfterTransition()
|
||||||
|
} else {
|
||||||
|
finish()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun AppCompatActivity.restart() {
|
||||||
|
val intent = intent
|
||||||
|
overridePendingTransition(0, 0)
|
||||||
|
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
|
||||||
|
finish()
|
||||||
|
overridePendingTransition(0, 0)
|
||||||
|
startActivity(intent)
|
||||||
|
}
|
||||||
|
|
||||||
|
inline fun <reified T : Activity> Activity.startActivity(): Unit =
|
||||||
|
this.startActivity(newIntent<T>())
|
||||||
|
|
||||||
|
inline fun <reified T : Activity> Activity.startActivity(flags: Int): Unit =
|
||||||
|
this.startActivity(newIntent<T>(flags))
|
||||||
|
|
||||||
|
inline fun <reified T : Activity> Activity.startActivity(extras: Bundle): Unit =
|
||||||
|
this.startActivity(newIntent<T>(extras))
|
||||||
|
|
||||||
|
inline fun <reified T : Activity> Activity.startActivity(flags: Int, extras: Bundle): Unit =
|
||||||
|
this.startActivity(newIntent<T>(flags, extras))
|
||||||
|
|
||||||
|
inline fun <reified T : Activity> Activity.startActivityForResult(requestCode: Int): Unit =
|
||||||
|
this.startActivityForResult(newIntent<T>(), requestCode)
|
||||||
|
|
||||||
|
inline fun <reified T : Activity> Activity.startActivityForResult(
|
||||||
|
requestCode: Int,
|
||||||
|
flags: Int
|
||||||
|
): Unit =
|
||||||
|
this.startActivityForResult(newIntent<T>(flags), requestCode)
|
||||||
|
|
||||||
|
inline fun <reified T : Activity> Activity.startActivityForResult(
|
||||||
|
extras: Bundle, requestCode: Int
|
||||||
|
): Unit =
|
||||||
|
this.startActivityForResult(newIntent<T>(extras), requestCode)
|
||||||
|
|
||||||
|
inline fun <reified T : Activity> Activity.startActivityForResult(
|
||||||
|
extras: Bundle, requestCode: Int, flags: Int
|
||||||
|
): Unit =
|
||||||
|
this.startActivityForResult(newIntent<T>(flags, extras), requestCode)
|
||||||
@@ -25,18 +25,27 @@ import android.content.ClipData
|
|||||||
import android.content.ClipboardManager
|
import android.content.ClipboardManager
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.graphics.Color
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Bundle
|
||||||
|
import android.util.DisplayMetrics
|
||||||
|
import android.util.TypedValue
|
||||||
|
import android.view.LayoutInflater
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
import androidx.core.app.ActivityOptionsCompat
|
||||||
import androidx.core.app.ShareCompat
|
import androidx.core.app.ShareCompat
|
||||||
import com.aurora.Constants
|
import com.aurora.Constants
|
||||||
import com.aurora.gplayapi.data.models.App
|
import com.aurora.gplayapi.data.models.App
|
||||||
import com.aurora.store.MainActivity
|
import com.aurora.store.MainActivity
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.util.Log
|
import com.aurora.store.util.Log
|
||||||
import com.aurora.store.util.ViewUtil
|
|
||||||
import kotlin.system.exitProcess
|
import kotlin.system.exitProcess
|
||||||
|
|
||||||
|
val Context.inflater: LayoutInflater
|
||||||
|
get() = LayoutInflater.from(this)
|
||||||
|
|
||||||
|
val Context.displayMetrics: DisplayMetrics
|
||||||
|
get() = resources.displayMetrics
|
||||||
|
|
||||||
fun Context.browse(url: String) {
|
fun Context.browse(url: String) {
|
||||||
try {
|
try {
|
||||||
@@ -82,18 +91,10 @@ fun <T> Context.open(className: Class<T>, newTask: Boolean = false) {
|
|||||||
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
|
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
|
||||||
startActivity(
|
startActivity(
|
||||||
intent,
|
intent,
|
||||||
ViewUtil.getEmptyActivityBundle(this)
|
getEmptyActivityBundle()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun AppCompatActivity.close() {
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
|
||||||
finishAfterTransition()
|
|
||||||
} else {
|
|
||||||
finish()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun Context.restartApp() {
|
fun Context.restartApp() {
|
||||||
val pendingIntent = PendingIntent.getActivity(
|
val pendingIntent = PendingIntent.getActivity(
|
||||||
this,
|
this,
|
||||||
@@ -107,8 +108,23 @@ fun Context.restartApp() {
|
|||||||
exitProcess(0)
|
exitProcess(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Context.getEmptyActivityBundle(): Bundle? {
|
||||||
|
return ActivityOptionsCompat.makeCustomAnimation(
|
||||||
|
this,
|
||||||
|
android.R.anim.fade_in,
|
||||||
|
android.R.anim.fade_out
|
||||||
|
).toBundle()
|
||||||
|
}
|
||||||
|
|
||||||
fun Context.copyToClipBoard(data: String?) {
|
fun Context.copyToClipBoard(data: String?) {
|
||||||
val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||||
val clip = ClipData.newPlainText("Download Url", data)
|
val clip = ClipData.newPlainText("Download Url", data)
|
||||||
clipboard.setPrimaryClip(clip)
|
clipboard.setPrimaryClip(clip)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Context.getStyledAttributeColor(id: Int): Int {
|
||||||
|
val arr = obtainStyledAttributes(TypedValue().data, intArrayOf(id))
|
||||||
|
val styledAttr = arr.getColor(0, Color.WHITE)
|
||||||
|
arr.recycle()
|
||||||
|
return styledAttr
|
||||||
|
}
|
||||||
|
|||||||
42
app/src/main/java/com/aurora/extensions/Intent.kt
Normal file
42
app/src/main/java/com/aurora/extensions/Intent.kt
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* Aurora Store
|
||||||
|
* Copyright (C) 2021, Rahul Kumar Patel <whyorean@gmail.com>
|
||||||
|
*
|
||||||
|
* Aurora Store is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Aurora Store is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Aurora Store. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.aurora.extensions
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
|
import android.os.Bundle
|
||||||
|
|
||||||
|
inline fun <reified T : Context> Context.newIntent(): Intent =
|
||||||
|
Intent(this, T::class.java)
|
||||||
|
|
||||||
|
inline fun <reified T : Context> Context.newIntent(flags: Int): Intent {
|
||||||
|
val intent = newIntent<T>()
|
||||||
|
intent.flags = flags
|
||||||
|
return intent
|
||||||
|
}
|
||||||
|
|
||||||
|
inline fun <reified T : Context> Context.newIntent(extras: Bundle): Intent =
|
||||||
|
newIntent<T>(0, extras)
|
||||||
|
|
||||||
|
inline fun <reified T : Context> Context.newIntent(flags: Int, extras: Bundle): Intent {
|
||||||
|
val intent = newIntent<T>(flags)
|
||||||
|
intent.putExtras(extras)
|
||||||
|
return intent
|
||||||
|
}
|
||||||
@@ -33,8 +33,6 @@ import androidx.fragment.app.Fragment
|
|||||||
import com.aurora.Constants
|
import com.aurora.Constants
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.util.CommonUtil
|
import com.aurora.store.util.CommonUtil
|
||||||
import com.aurora.store.util.ViewUtil
|
|
||||||
|
|
||||||
|
|
||||||
fun Fragment.applyTheme(
|
fun Fragment.applyTheme(
|
||||||
themeId: Int,
|
themeId: Int,
|
||||||
@@ -140,8 +138,7 @@ private fun AppCompatActivity.setLightStatusBar() {
|
|||||||
private fun AppCompatActivity.setLightNavigationBar() {
|
private fun AppCompatActivity.setLightNavigationBar() {
|
||||||
var flags = window.decorView.systemUiVisibility
|
var flags = window.decorView.systemUiVisibility
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
window.navigationBarColor =
|
window.navigationBarColor = getStyledAttributeColor(android.R.attr.colorBackground)
|
||||||
ViewUtil.getStyledAttribute(this, android.R.attr.colorBackground)
|
|
||||||
flags = flags or View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
|
flags = flags or View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
|
||||||
}
|
}
|
||||||
window.decorView.systemUiVisibility = flags
|
window.decorView.systemUiVisibility = flags
|
||||||
|
|||||||
@@ -25,17 +25,10 @@ import android.os.Looper
|
|||||||
fun runAsync(action: () -> Unit) = Thread(Runnable(action)).start()
|
fun runAsync(action: () -> Unit) = Thread(Runnable(action)).start()
|
||||||
|
|
||||||
fun runOnUiThread(action: () -> Unit) {
|
fun runOnUiThread(action: () -> Unit) {
|
||||||
if (isMainLooperAlive()) {
|
when {
|
||||||
action()
|
isMainThread() -> action.invoke()
|
||||||
} else {
|
else -> Handler(Looper.getMainLooper()).post(Runnable(action))
|
||||||
Handler(Looper.getMainLooper()).post(Runnable(action))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun runDelayed(delayMillis: Long, action: () -> Unit) =
|
private fun isMainThread() = Looper.myLooper() == Looper.getMainLooper()
|
||||||
Handler().postDelayed(Runnable(action), delayMillis)
|
|
||||||
|
|
||||||
fun runDelayedOnUiThread(delayMillis: Long, action: () -> Unit) =
|
|
||||||
Handler(Looper.getMainLooper()).postDelayed(Runnable(action), delayMillis)
|
|
||||||
|
|
||||||
private fun isMainLooperAlive() = Looper.myLooper() == Looper.getMainLooper()
|
|
||||||
|
|||||||
@@ -21,16 +21,28 @@ package com.aurora.extensions
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.annotation.StringRes
|
import androidx.fragment.app.Fragment
|
||||||
|
|
||||||
fun Context.toast(text: CharSequence): Toast =
|
fun Context.toast(resId: Int) = runOnUiThread {
|
||||||
Toast.makeText(this, text, Toast.LENGTH_SHORT).apply { show() }
|
|
||||||
|
|
||||||
fun Context.longToast(text: CharSequence): Toast =
|
|
||||||
Toast.makeText(this, text, Toast.LENGTH_LONG).apply { show() }
|
|
||||||
|
|
||||||
fun Context.toast(@StringRes resId: Int): Toast =
|
|
||||||
Toast.makeText(this, resId, Toast.LENGTH_SHORT).apply { show() }
|
Toast.makeText(this, resId, Toast.LENGTH_SHORT).apply { show() }
|
||||||
|
}
|
||||||
|
|
||||||
fun Context.longToast(@StringRes resId: Int): Toast =
|
fun Context.toast(text: CharSequence) = runOnUiThread {
|
||||||
|
Toast.makeText(this, text, Toast.LENGTH_SHORT).apply { show() }
|
||||||
|
}
|
||||||
|
|
||||||
|
fun Context.toastLong(resId: Int) = runOnUiThread {
|
||||||
Toast.makeText(this, resId, Toast.LENGTH_LONG).apply { show() }
|
Toast.makeText(this, resId, Toast.LENGTH_LONG).apply { show() }
|
||||||
|
}
|
||||||
|
|
||||||
|
fun Context.toastLong(text: CharSequence) = runOnUiThread {
|
||||||
|
Toast.makeText(this, text, Toast.LENGTH_LONG).apply { show() }
|
||||||
|
}
|
||||||
|
|
||||||
|
fun Fragment.toast(resId: Int) = requireContext().toast(resId)
|
||||||
|
|
||||||
|
fun Fragment.toast(text: CharSequence) = requireContext().toast(text)
|
||||||
|
|
||||||
|
fun Fragment.toastLong(resId: Int) = requireContext().toastLong(resId)
|
||||||
|
|
||||||
|
fun Fragment.toastLong(text: CharSequence) = requireContext().toastLong(text)
|
||||||
|
|||||||
@@ -39,14 +39,14 @@ import androidx.navigation.NavController
|
|||||||
import androidx.navigation.NavDestination
|
import androidx.navigation.NavDestination
|
||||||
import androidx.navigation.Navigation
|
import androidx.navigation.Navigation
|
||||||
import androidx.navigation.ui.NavigationUI
|
import androidx.navigation.ui.NavigationUI
|
||||||
|
import com.aurora.extensions.getEmptyActivityBundle
|
||||||
|
import com.aurora.extensions.getStyledAttributeColor
|
||||||
|
import com.aurora.extensions.load
|
||||||
|
import com.aurora.extensions.open
|
||||||
import com.aurora.gplayapi.data.models.AuthData
|
import com.aurora.gplayapi.data.models.AuthData
|
||||||
import com.aurora.store.data.providers.AuthProvider
|
import com.aurora.store.data.providers.AuthProvider
|
||||||
import com.aurora.store.databinding.ActivityMainBinding
|
import com.aurora.store.databinding.ActivityMainBinding
|
||||||
import com.aurora.store.util.Log
|
import com.aurora.store.util.Log
|
||||||
import com.aurora.store.util.ViewUtil
|
|
||||||
import com.aurora.store.util.ViewUtil.getStyledAttribute
|
|
||||||
import com.aurora.extensions.load
|
|
||||||
import com.aurora.extensions.open
|
|
||||||
import com.aurora.store.view.ui.about.AboutActivity
|
import com.aurora.store.view.ui.about.AboutActivity
|
||||||
import com.aurora.store.view.ui.account.AccountActivity
|
import com.aurora.store.view.ui.account.AccountActivity
|
||||||
import com.aurora.store.view.ui.all.AppsGamesActivity
|
import com.aurora.store.view.ui.all.AppsGamesActivity
|
||||||
@@ -122,8 +122,7 @@ class MainActivity : BaseActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
B.viewToolbar.imgActionSecondary.setOnClickListener {
|
B.viewToolbar.imgActionSecondary.setOnClickListener {
|
||||||
val userAppIntent = Intent(this, DownloadActivity::class.java)
|
open(DownloadActivity::class.java)
|
||||||
startActivity(userAppIntent, ViewUtil.getEmptyActivityBundle(this))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,7 +130,7 @@ class MainActivity : BaseActivity() {
|
|||||||
B.searchFab.setOnClickListener {
|
B.searchFab.setOnClickListener {
|
||||||
startActivity(
|
startActivity(
|
||||||
Intent(this, SearchSuggestionActivity::class.java),
|
Intent(this, SearchSuggestionActivity::class.java),
|
||||||
ViewUtil.getEmptyActivityBundle(this)
|
getEmptyActivityBundle()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -140,7 +139,7 @@ class MainActivity : BaseActivity() {
|
|||||||
val bottomNavigationView: BottomNavigationView = B.navView
|
val bottomNavigationView: BottomNavigationView = B.navView
|
||||||
navController = Navigation.findNavController(this, R.id.nav_host_fragment)
|
navController = Navigation.findNavController(this, R.id.nav_host_fragment)
|
||||||
|
|
||||||
val backGroundColor = getStyledAttribute(this, android.R.attr.colorBackground)
|
val backGroundColor = getStyledAttributeColor(android.R.attr.colorBackground)
|
||||||
bottomNavigationView.setBackgroundColor(ColorUtils.setAlphaComponent(backGroundColor, 245))
|
bottomNavigationView.setBackgroundColor(ColorUtils.setAlphaComponent(backGroundColor, 245))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import android.util.ArrayMap
|
|||||||
import androidx.core.app.NotificationCompat
|
import androidx.core.app.NotificationCompat
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import com.aurora.Constants
|
import com.aurora.Constants
|
||||||
|
import com.aurora.extensions.isLAndAbove
|
||||||
import com.aurora.gplayapi.data.models.App
|
import com.aurora.gplayapi.data.models.App
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.data.downloader.DownloadManager
|
import com.aurora.store.data.downloader.DownloadManager
|
||||||
@@ -39,7 +40,6 @@ import com.aurora.store.data.receiver.DownloadResumeReceiver
|
|||||||
import com.aurora.store.data.receiver.InstallReceiver
|
import com.aurora.store.data.receiver.InstallReceiver
|
||||||
import com.aurora.store.util.CommonUtil
|
import com.aurora.store.util.CommonUtil
|
||||||
import com.aurora.store.util.Log
|
import com.aurora.store.util.Log
|
||||||
import com.aurora.extensions.isLAndAbove
|
|
||||||
import com.aurora.store.view.ui.details.AppDetailsActivity
|
import com.aurora.store.view.ui.details.AppDetailsActivity
|
||||||
import com.aurora.store.view.ui.downloads.DownloadActivity
|
import com.aurora.store.view.ui.downloads.DownloadActivity
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ class AC2DMTask {
|
|||||||
.response()
|
.response()
|
||||||
|
|
||||||
return response.third.fold(success = {
|
return response.third.fold(success = {
|
||||||
Util.parseResponse(String(it))
|
AC2DMUtil.parseResponse(String(it))
|
||||||
}, failure = {
|
}, failure = {
|
||||||
mapOf()
|
mapOf()
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import java.util.StringTokenizer;
|
|||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
public class Util {
|
public class AC2DMUtil {
|
||||||
|
|
||||||
public static Map<String, String> parseResponse(String response) {
|
public static Map<String, String> parseResponse(String response) {
|
||||||
Map<String, String> keyValueMap = new HashMap<String, String>();
|
Map<String, String> keyValueMap = new HashMap<String, String>();
|
||||||
@@ -22,11 +22,8 @@ package com.aurora.store.util
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.pm.PackageInfo
|
import android.content.pm.PackageInfo
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.net.Uri
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import androidx.core.content.FileProvider
|
|
||||||
import com.aurora.store.BuildConfig
|
|
||||||
import com.aurora.extensions.isLAndAbove
|
import com.aurora.extensions.isLAndAbove
|
||||||
import org.apache.commons.io.IOUtils
|
import org.apache.commons.io.IOUtils
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -111,12 +108,4 @@ class ApkCopier(private val context: Context, private val packageName: String) {
|
|||||||
Log.e("ApkCopier : %s", e.message)
|
Log.e("ApkCopier : %s", e.message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getUri(file: File): Uri {
|
|
||||||
return FileProvider.getUriForFile(
|
|
||||||
context,
|
|
||||||
"${BuildConfig.APPLICATION_ID}.fileProvider",
|
|
||||||
file
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -21,8 +21,6 @@ package com.aurora.store.util
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
|
||||||
import androidx.core.app.ActivityOptionsCompat
|
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import java.text.DecimalFormat
|
import java.text.DecimalFormat
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -37,6 +35,7 @@ object CommonUtil {
|
|||||||
Pair(6, " MB"),
|
Pair(6, " MB"),
|
||||||
Pair(9, " GB")
|
Pair(9, " GB")
|
||||||
)
|
)
|
||||||
|
|
||||||
private val diPrefixes: Map<Int, String> = hashMapOf(
|
private val diPrefixes: Map<Int, String> = hashMapOf(
|
||||||
Pair(1, ""),
|
Pair(1, ""),
|
||||||
Pair(3, " K"),
|
Pair(3, " K"),
|
||||||
@@ -134,14 +133,6 @@ object CommonUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getEmptyActivityBundle(context: Context): Bundle? {
|
|
||||||
return ActivityOptionsCompat.makeCustomAnimation(
|
|
||||||
context,
|
|
||||||
android.R.anim.fade_in,
|
|
||||||
android.R.anim.fade_out
|
|
||||||
).toBundle()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun cleanupInstallationSessions(context: Context) {
|
fun cleanupInstallationSessions(context: Context) {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
val packageInstaller = context.packageManager.packageInstaller
|
val packageInstaller = context.packageManager.packageInstaller
|
||||||
|
|||||||
@@ -92,26 +92,17 @@ object Preferences {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Context.save(key: String, value: Int) {
|
/*Preference Extensions*/
|
||||||
Preferences.putInteger(this, key, value)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun Fragment.save(key: String, value: Int) {
|
fun Context.save(key: String, value: Int) = Preferences.putInteger(this, key, value)
|
||||||
Preferences.putInteger(requireContext(), key, value)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun Context.save(key: String, value: Boolean) {
|
fun Context.save(key: String, value: Boolean) = Preferences.putBoolean(this, key, value)
|
||||||
Preferences.putBoolean(this, key, value)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun Fragment.save(key: String, value: Boolean) {
|
fun Context.save(key: String, value: String) = Preferences.putString(this, key, value)
|
||||||
Preferences.putBoolean(requireContext(), key, value)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun Context.save(key: String, value: String) {
|
|
||||||
Preferences.putString(this, key, value)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun Fragment.save(key: String, value: String) {
|
fun Fragment.save(key: String, value: Int) = requireContext().save(key, value)
|
||||||
Preferences.putString(requireContext(), key, value)
|
|
||||||
}
|
fun Fragment.save(key: String, value: Boolean) = requireContext().save(key, value)
|
||||||
|
|
||||||
|
fun Fragment.save(key: String, value: String) = requireContext().save(key, value)
|
||||||
|
|||||||
@@ -1,71 +0,0 @@
|
|||||||
/*
|
|
||||||
* Aurora Store
|
|
||||||
* Copyright (C) 2021, Rahul Kumar Patel <whyorean@gmail.com>
|
|
||||||
*
|
|
||||||
* Aurora Store is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Aurora Store is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Aurora Store. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.aurora.store.util
|
|
||||||
|
|
||||||
import android.app.Activity
|
|
||||||
import android.content.Context
|
|
||||||
import android.graphics.Color
|
|
||||||
import android.os.Build
|
|
||||||
import android.os.Bundle
|
|
||||||
import android.util.TypedValue
|
|
||||||
import android.view.View
|
|
||||||
import android.view.WindowManager
|
|
||||||
import androidx.annotation.RequiresApi
|
|
||||||
import androidx.core.app.ActivityOptionsCompat
|
|
||||||
|
|
||||||
|
|
||||||
object ViewUtil {
|
|
||||||
|
|
||||||
fun getEmptyActivityBundle(context: Context?): Bundle? {
|
|
||||||
return ActivityOptionsCompat.makeCustomAnimation(
|
|
||||||
context!!,
|
|
||||||
android.R.anim.fade_in,
|
|
||||||
android.R.anim.fade_out
|
|
||||||
).toBundle()
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
|
|
||||||
fun configureActivityLayout(activity: Activity, isLight: Boolean) {
|
|
||||||
val window = activity.window
|
|
||||||
val params = window.attributes
|
|
||||||
params.flags = params.flags and WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
|
|
||||||
window.attributes = params
|
|
||||||
window.statusBarColor = Color.TRANSPARENT
|
|
||||||
setFullScreenLightStatusBar(activity, isLight)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun setFullScreenLightStatusBar(activity: Activity, isLight: Boolean) {
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
|
||||||
var flags = activity.window.decorView.systemUiVisibility
|
|
||||||
if (isLight)
|
|
||||||
flags = flags or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
|
|
||||||
flags = flags or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
|
||||||
flags = flags or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
|
||||||
activity.window.decorView.systemUiVisibility = flags
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getStyledAttribute(context: Context, styleID: Int): Int {
|
|
||||||
val arr = context.obtainStyledAttributes(TypedValue().data, intArrayOf(styleID))
|
|
||||||
val styledColor = arr.getColor(0, Color.WHITE)
|
|
||||||
arr.recycle()
|
|
||||||
return styledColor
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -19,22 +19,19 @@
|
|||||||
|
|
||||||
package com.aurora.store.view.ui.account
|
package com.aurora.store.view.ui.account
|
||||||
|
|
||||||
import android.content.Intent
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
|
import com.aurora.extensions.browse
|
||||||
|
import com.aurora.extensions.close
|
||||||
|
import com.aurora.extensions.load
|
||||||
import com.aurora.gplayapi.data.models.AuthData
|
import com.aurora.gplayapi.data.models.AuthData
|
||||||
import com.aurora.store.MainActivity
|
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.data.AuthState
|
import com.aurora.store.data.AuthState
|
||||||
import com.aurora.store.data.event.BusEvent
|
import com.aurora.store.data.event.BusEvent
|
||||||
import com.aurora.store.data.providers.AccountProvider
|
import com.aurora.store.data.providers.AccountProvider
|
||||||
import com.aurora.store.data.providers.AuthProvider
|
import com.aurora.store.data.providers.AuthProvider
|
||||||
import com.aurora.store.databinding.ActivityAccountBinding
|
import com.aurora.store.databinding.ActivityAccountBinding
|
||||||
import com.aurora.store.util.CommonUtil.getEmptyActivityBundle
|
|
||||||
import com.aurora.extensions.browse
|
|
||||||
import com.aurora.extensions.close
|
|
||||||
import com.aurora.extensions.load
|
|
||||||
import com.aurora.store.view.ui.commons.BaseActivity
|
import com.aurora.store.view.ui.commons.BaseActivity
|
||||||
import com.aurora.store.viewmodel.auth.AuthViewModel
|
import com.aurora.store.viewmodel.auth.AuthViewModel
|
||||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
|
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
|
||||||
@@ -224,14 +221,6 @@ class AccountActivity : BaseActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun moveToContent() {
|
|
||||||
runOnUiThread {
|
|
||||||
val intent = Intent(this, MainActivity::class.java)
|
|
||||||
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
|
|
||||||
startActivity(intent, getEmptyActivityBundle(this))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onConnected() {
|
override fun onConnected() {
|
||||||
hideNetworkConnectivitySheet()
|
hideNetworkConnectivitySheet()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import com.aurora.store.data.event.BusEvent
|
|||||||
import com.aurora.store.databinding.ActivityGoogleBinding
|
import com.aurora.store.databinding.ActivityGoogleBinding
|
||||||
import com.aurora.store.util.AC2DMTask
|
import com.aurora.store.util.AC2DMTask
|
||||||
import com.aurora.store.util.Preferences
|
import com.aurora.store.util.Preferences
|
||||||
import com.aurora.store.util.Util
|
import com.aurora.store.util.AC2DMUtil
|
||||||
import com.aurora.extensions.close
|
import com.aurora.extensions.close
|
||||||
import com.aurora.extensions.isLAndAbove
|
import com.aurora.extensions.isLAndAbove
|
||||||
import com.aurora.store.view.ui.commons.BaseActivity
|
import com.aurora.store.view.ui.commons.BaseActivity
|
||||||
@@ -79,7 +79,7 @@ class GoogleActivity : BaseActivity() {
|
|||||||
B.webview.webViewClient = object : WebViewClient() {
|
B.webview.webViewClient = object : WebViewClient() {
|
||||||
override fun onPageFinished(view: WebView, url: String) {
|
override fun onPageFinished(view: WebView, url: String) {
|
||||||
val cookies = CookieManager.getInstance().getCookie(url)
|
val cookies = CookieManager.getInstance().getCookie(url)
|
||||||
val cookieMap = Util.parseCookieString(cookies)
|
val cookieMap = AC2DMUtil.parseCookieString(cookies)
|
||||||
if (cookieMap.isNotEmpty() && cookieMap[AUTH_TOKEN] != null) {
|
if (cookieMap.isNotEmpty() && cookieMap[AUTH_TOKEN] != null) {
|
||||||
val oauthToken = cookieMap[AUTH_TOKEN]
|
val oauthToken = cookieMap[AUTH_TOKEN]
|
||||||
B.webview.evaluateJavascript("(function() { return document.getElementById('profileIdentifier').innerHTML; })();") {
|
B.webview.evaluateJavascript("(function() { return document.getElementById('profileIdentifier').innerHTML; })();") {
|
||||||
|
|||||||
@@ -26,13 +26,13 @@ import android.os.Bundle
|
|||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import com.aurora.Constants
|
import com.aurora.Constants
|
||||||
|
import com.aurora.extensions.applyTheme
|
||||||
|
import com.aurora.extensions.getEmptyActivityBundle
|
||||||
import com.aurora.gplayapi.data.models.App
|
import com.aurora.gplayapi.data.models.App
|
||||||
import com.aurora.store.data.providers.NetworkProvider
|
import com.aurora.store.data.providers.NetworkProvider
|
||||||
import com.aurora.store.util.Preferences
|
import com.aurora.store.util.Preferences
|
||||||
import com.aurora.store.util.Preferences.PREFERENCE_THEME_ACCENT
|
import com.aurora.store.util.Preferences.PREFERENCE_THEME_ACCENT
|
||||||
import com.aurora.store.util.Preferences.PREFERENCE_THEME_TYPE
|
import com.aurora.store.util.Preferences.PREFERENCE_THEME_TYPE
|
||||||
import com.aurora.store.util.ViewUtil
|
|
||||||
import com.aurora.extensions.applyTheme
|
|
||||||
import com.aurora.store.view.ui.account.GoogleActivity
|
import com.aurora.store.view.ui.account.GoogleActivity
|
||||||
import com.aurora.store.view.ui.details.*
|
import com.aurora.store.view.ui.details.*
|
||||||
import com.aurora.store.view.ui.sheets.NetworkDialogSheet
|
import com.aurora.store.view.ui.sheets.NetworkDialogSheet
|
||||||
@@ -108,7 +108,7 @@ abstract class BaseActivity : AppCompatActivity(), NetworkProvider.NetworkListen
|
|||||||
intent.putExtra(Constants.STRING_EXTRA, title)
|
intent.putExtra(Constants.STRING_EXTRA, title)
|
||||||
startActivity(
|
startActivity(
|
||||||
intent,
|
intent,
|
||||||
ViewUtil.getEmptyActivityBundle(this)
|
getEmptyActivityBundle()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,7 +133,7 @@ abstract class BaseActivity : AppCompatActivity(), NetworkProvider.NetworkListen
|
|||||||
val intent = Intent(this, GoogleActivity::class.java)
|
val intent = Intent(this, GoogleActivity::class.java)
|
||||||
startActivity(
|
startActivity(
|
||||||
intent,
|
intent,
|
||||||
ViewUtil.getEmptyActivityBundle(this)
|
getEmptyActivityBundle()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ import android.content.Intent
|
|||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import com.aurora.Constants
|
import com.aurora.Constants
|
||||||
|
import com.aurora.extensions.getEmptyActivityBundle
|
||||||
import com.aurora.gplayapi.data.models.App
|
import com.aurora.gplayapi.data.models.App
|
||||||
import com.aurora.gplayapi.data.models.Category
|
import com.aurora.gplayapi.data.models.Category
|
||||||
import com.aurora.store.util.ViewUtil
|
|
||||||
import com.aurora.store.view.ui.details.AppDetailsActivity
|
import com.aurora.store.view.ui.details.AppDetailsActivity
|
||||||
import com.aurora.store.view.ui.details.DevProfileActivity
|
import com.aurora.store.view.ui.details.DevProfileActivity
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
@@ -74,19 +74,13 @@ open class BaseFragment : Fragment() {
|
|||||||
|
|
||||||
intent.putExtra(Constants.BROWSE_EXTRA, browseUrl)
|
intent.putExtra(Constants.BROWSE_EXTRA, browseUrl)
|
||||||
intent.putExtra(Constants.STRING_EXTRA, title)
|
intent.putExtra(Constants.STRING_EXTRA, title)
|
||||||
startActivity(
|
startActivity(intent, requireContext().getEmptyActivityBundle())
|
||||||
intent,
|
|
||||||
ViewUtil.getEmptyActivityBundle(requireContext())
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openEditorStreamBrowseActivity(browseUrl: String, title: String = "") {
|
fun openEditorStreamBrowseActivity(browseUrl: String, title: String = "") {
|
||||||
val intent = Intent(requireContext(), EditorStreamBrowseActivity::class.java)
|
val intent = Intent(requireContext(), EditorStreamBrowseActivity::class.java)
|
||||||
intent.putExtra(Constants.BROWSE_EXTRA, browseUrl)
|
intent.putExtra(Constants.BROWSE_EXTRA, browseUrl)
|
||||||
intent.putExtra(Constants.STRING_EXTRA, title)
|
intent.putExtra(Constants.STRING_EXTRA, title)
|
||||||
startActivity(
|
startActivity(intent, requireContext().getEmptyActivityBundle())
|
||||||
intent,
|
|
||||||
ViewUtil.getEmptyActivityBundle(requireContext())
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -24,10 +24,10 @@ import android.os.Bundle
|
|||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
import androidx.preference.PreferenceFragmentCompat
|
import androidx.preference.PreferenceFragmentCompat
|
||||||
|
import com.aurora.extensions.getStyledAttributeColor
|
||||||
|
import com.aurora.extensions.restartApp
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.databinding.ActivitySettingBinding
|
import com.aurora.store.databinding.ActivitySettingBinding
|
||||||
import com.aurora.store.util.ViewUtil.getStyledAttribute
|
|
||||||
import com.aurora.extensions.restartApp
|
|
||||||
import com.aurora.store.view.ui.commons.BaseActivity
|
import com.aurora.store.view.ui.commons.BaseActivity
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
|
||||||
@@ -144,7 +144,7 @@ class SettingsActivity : BaseActivity(),
|
|||||||
restartApp()
|
restartApp()
|
||||||
}
|
}
|
||||||
.setNegativeButton(getString(R.string.action_later)) { dialog, _ -> dialog.dismiss() }
|
.setNegativeButton(getString(R.string.action_later)) { dialog, _ -> dialog.dismiss() }
|
||||||
val backGroundColor = getStyledAttribute(this, android.R.attr.colorBackground)
|
val backGroundColor = getStyledAttributeColor(android.R.attr.colorBackground)
|
||||||
builder.background = ColorDrawable(backGroundColor)
|
builder.background = ColorDrawable(backGroundColor)
|
||||||
builder.create()
|
builder.create()
|
||||||
builder.show()
|
builder.show()
|
||||||
|
|||||||
@@ -28,12 +28,12 @@ import android.view.inputmethod.EditorInfo
|
|||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import com.aurora.Constants
|
import com.aurora.Constants
|
||||||
import com.aurora.gplayapi.SearchSuggestEntry
|
|
||||||
import com.aurora.store.databinding.ActivitySearchSuggestionBinding
|
|
||||||
import com.aurora.store.util.ViewUtil
|
|
||||||
import com.aurora.extensions.close
|
import com.aurora.extensions.close
|
||||||
|
import com.aurora.extensions.getEmptyActivityBundle
|
||||||
import com.aurora.extensions.open
|
import com.aurora.extensions.open
|
||||||
import com.aurora.extensions.showKeyboard
|
import com.aurora.extensions.showKeyboard
|
||||||
|
import com.aurora.gplayapi.SearchSuggestEntry
|
||||||
|
import com.aurora.store.databinding.ActivitySearchSuggestionBinding
|
||||||
import com.aurora.store.view.epoxy.views.SearchSuggestionViewModel_
|
import com.aurora.store.view.epoxy.views.SearchSuggestionViewModel_
|
||||||
import com.aurora.store.view.ui.commons.BaseActivity
|
import com.aurora.store.view.ui.commons.BaseActivity
|
||||||
import com.aurora.store.view.ui.downloads.DownloadActivity
|
import com.aurora.store.view.ui.downloads.DownloadActivity
|
||||||
@@ -151,9 +151,6 @@ class SearchSuggestionActivity : BaseActivity() {
|
|||||||
private fun search(query: String) {
|
private fun search(query: String) {
|
||||||
val intent = Intent(this, SearchResultsActivity::class.java)
|
val intent = Intent(this, SearchResultsActivity::class.java)
|
||||||
intent.putExtra(Constants.STRING_EXTRA, query)
|
intent.putExtra(Constants.STRING_EXTRA, query)
|
||||||
startActivity(
|
startActivity(intent, getEmptyActivityBundle())
|
||||||
intent,
|
|
||||||
ViewUtil.getEmptyActivityBundle(this)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user