Migrate SpoofActivity to fragment
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -153,7 +153,6 @@
|
|||||||
<activity android:name=".view.ui.details.DetailsReviewActivity" />
|
<activity android:name=".view.ui.details.DetailsReviewActivity" />
|
||||||
<activity android:name=".view.ui.downloads.DownloadActivity" />
|
<activity android:name=".view.ui.downloads.DownloadActivity" />
|
||||||
<activity android:name=".view.ui.account.GoogleActivity" />
|
<activity android:name=".view.ui.account.GoogleActivity" />
|
||||||
<activity android:name=".view.ui.spoof.SpoofActivity" />
|
|
||||||
<activity android:name=".view.ui.account.AccountActivity" />
|
<activity android:name=".view.ui.account.AccountActivity" />
|
||||||
<activity android:name=".view.ui.details.DetailsExodusActivity" />
|
<activity android:name=".view.ui.details.DetailsExodusActivity" />
|
||||||
<activity android:name=".view.ui.details.DevAppsActivity" />
|
<activity android:name=".view.ui.details.DevAppsActivity" />
|
||||||
|
|||||||
@@ -58,10 +58,9 @@ import com.aurora.store.view.ui.commons.BaseActivity
|
|||||||
import com.aurora.store.view.ui.commons.BlacklistActivity
|
import com.aurora.store.view.ui.commons.BlacklistActivity
|
||||||
import com.aurora.store.view.ui.downloads.DownloadActivity
|
import com.aurora.store.view.ui.downloads.DownloadActivity
|
||||||
import com.aurora.store.view.ui.preferences.SettingsActivity
|
import com.aurora.store.view.ui.preferences.SettingsActivity
|
||||||
import com.aurora.store.view.ui.sale.AppSalesFragment
|
|
||||||
import com.aurora.store.view.ui.search.SearchSuggestionActivity
|
import com.aurora.store.view.ui.search.SearchSuggestionActivity
|
||||||
import com.aurora.store.view.ui.sheets.SelfUpdateSheet
|
import com.aurora.store.view.ui.sheets.SelfUpdateSheet
|
||||||
import com.aurora.store.view.ui.spoof.SpoofActivity
|
import com.aurora.store.view.ui.spoof.SpoofFragment
|
||||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
|
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
|
||||||
import com.google.android.material.bottomnavigation.BottomNavigationView
|
import com.google.android.material.bottomnavigation.BottomNavigationView
|
||||||
import nl.komponents.kovenant.task
|
import nl.komponents.kovenant.task
|
||||||
@@ -257,7 +256,8 @@ class MainActivity : BaseActivity() {
|
|||||||
open(DownloadActivity::class.java)
|
open(DownloadActivity::class.java)
|
||||||
}
|
}
|
||||||
R.id.menu_spoof_manager -> {
|
R.id.menu_spoof_manager -> {
|
||||||
open(SpoofActivity::class.java)
|
navController.navigate(R.id.spoofFragment)
|
||||||
|
B.drawerLayout.close()
|
||||||
}
|
}
|
||||||
R.id.menu_account_manager -> {
|
R.id.menu_account_manager -> {
|
||||||
open(AccountActivity::class.java)
|
open(AccountActivity::class.java)
|
||||||
|
|||||||
@@ -22,28 +22,30 @@ package com.aurora.store.view.ui.spoof
|
|||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.Menu
|
import android.view.View
|
||||||
import android.view.MenuItem
|
|
||||||
import androidx.activity.result.contract.ActivityResultContracts
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.FragmentManager
|
import androidx.fragment.app.FragmentManager
|
||||||
import androidx.lifecycle.Lifecycle
|
import androidx.lifecycle.Lifecycle
|
||||||
|
import androidx.navigation.fragment.findNavController
|
||||||
import androidx.viewpager2.adapter.FragmentStateAdapter
|
import androidx.viewpager2.adapter.FragmentStateAdapter
|
||||||
import com.aurora.extensions.toast
|
import com.aurora.extensions.toast
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.data.providers.NativeDeviceInfoProvider
|
import com.aurora.store.data.providers.NativeDeviceInfoProvider
|
||||||
import com.aurora.store.databinding.ActivityGenericPagerBinding
|
import com.aurora.store.databinding.ActivityGenericPagerBinding
|
||||||
import com.aurora.store.util.PathUtil
|
import com.aurora.store.util.PathUtil
|
||||||
import com.aurora.store.view.ui.commons.BaseActivity
|
|
||||||
import com.google.android.material.tabs.TabLayout
|
import com.google.android.material.tabs.TabLayout
|
||||||
import com.google.android.material.tabs.TabLayoutMediator
|
import com.google.android.material.tabs.TabLayoutMediator
|
||||||
import nl.komponents.kovenant.task
|
import nl.komponents.kovenant.task
|
||||||
import nl.komponents.kovenant.ui.failUi
|
import nl.komponents.kovenant.ui.failUi
|
||||||
import nl.komponents.kovenant.ui.successUi
|
import nl.komponents.kovenant.ui.successUi
|
||||||
|
|
||||||
class SpoofActivity : BaseActivity() {
|
class SpoofFragment : Fragment(R.layout.activity_generic_pager) {
|
||||||
|
|
||||||
private lateinit var B: ActivityGenericPagerBinding
|
private var _binding: ActivityGenericPagerBinding? = null
|
||||||
|
private val binding: ActivityGenericPagerBinding
|
||||||
|
get() = _binding!!
|
||||||
|
|
||||||
// Android is weird, even if export device config with proper mime type, it will refuse to open
|
// Android is weird, even if export device config with proper mime type, it will refuse to open
|
||||||
// it again with same mime type
|
// it again with same mime type
|
||||||
@@ -59,63 +61,40 @@ class SpoofActivity : BaseActivity() {
|
|||||||
if (it != null) exportDeviceConfig(it) else toast(R.string.toast_export_failed)
|
if (it != null) exportDeviceConfig(it) else toast(R.string.toast_export_failed)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onConnected() {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
_binding = ActivityGenericPagerBinding.bind(view)
|
||||||
|
|
||||||
}
|
// Toolbar
|
||||||
|
binding.layoutActionToolbar.toolbar.apply {
|
||||||
|
elevation = 0f
|
||||||
|
title = getString(R.string.title_spoof_manager)
|
||||||
|
navigationIcon = ContextCompat.getDrawable(view.context, R.drawable.ic_arrow_back)
|
||||||
|
inflateMenu(R.menu.menu_spoof)
|
||||||
|
setNavigationOnClickListener { findNavController().navigateUp() }
|
||||||
|
setOnMenuItemClickListener {
|
||||||
|
when (it.itemId) {
|
||||||
|
R.id.action_import -> {
|
||||||
|
startForDocumentImport.launch(arrayOf(importMimeType))
|
||||||
|
}
|
||||||
|
|
||||||
override fun onDisconnected() {
|
R.id.action_export -> {
|
||||||
|
startForDocumentExport
|
||||||
}
|
.launch("aurora_store_${Build.BRAND}_${Build.DEVICE}.properties")
|
||||||
|
}
|
||||||
override fun onReconnected() {
|
}
|
||||||
}
|
true
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
|
||||||
super.onCreate(savedInstanceState)
|
|
||||||
B = ActivityGenericPagerBinding.inflate(layoutInflater)
|
|
||||||
setContentView(B.root)
|
|
||||||
|
|
||||||
attachToolbar()
|
|
||||||
attachViewPager()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
|
|
||||||
menuInflater.inflate(R.menu.menu_spoof, menu)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
|
||||||
when (item.itemId) {
|
|
||||||
android.R.id.home -> {
|
|
||||||
onBackPressedDispatcher.onBackPressed()
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
R.id.action_import -> {
|
|
||||||
startForDocumentImport.launch(arrayOf(importMimeType))
|
|
||||||
}
|
|
||||||
R.id.action_export -> {
|
|
||||||
startForDocumentExport
|
|
||||||
.launch("aurora_store_${Build.BRAND}_${Build.DEVICE}.properties")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return super.onOptionsItemSelected(item)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun attachToolbar() {
|
// ViewPager
|
||||||
setSupportActionBar(B.layoutActionToolbar.toolbar)
|
binding.pager.adapter = ViewPagerAdapter(childFragmentManager, lifecycle)
|
||||||
val actionBar = supportActionBar
|
|
||||||
if (actionBar != null) {
|
|
||||||
actionBar.setDisplayShowCustomEnabled(true)
|
|
||||||
actionBar.setDisplayHomeAsUpEnabled(true)
|
|
||||||
actionBar.elevation = 0f
|
|
||||||
actionBar.title = getString(R.string.title_spoof_manager)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun attachViewPager() {
|
TabLayoutMediator(
|
||||||
B.pager.adapter = ViewPagerAdapter(supportFragmentManager, lifecycle)
|
binding.tabLayout,
|
||||||
|
binding.pager,
|
||||||
TabLayoutMediator(B.tabLayout, B.pager, true) { tab: TabLayout.Tab, position: Int ->
|
true
|
||||||
|
) { tab: TabLayout.Tab, position: Int ->
|
||||||
when (position) {
|
when (position) {
|
||||||
0 -> tab.text = getString(R.string.title_device)
|
0 -> tab.text = getString(R.string.title_device)
|
||||||
1 -> tab.text = getString(R.string.title_language)
|
1 -> tab.text = getString(R.string.title_language)
|
||||||
@@ -125,16 +104,21 @@ class SpoofActivity : BaseActivity() {
|
|||||||
}.attach()
|
}.attach()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onDestroyView() {
|
||||||
|
super.onDestroyView()
|
||||||
|
_binding = null
|
||||||
|
}
|
||||||
|
|
||||||
private fun importDeviceConfig(uri: Uri) {
|
private fun importDeviceConfig(uri: Uri) {
|
||||||
task {
|
task {
|
||||||
contentResolver.openInputStream(uri)?.use { input ->
|
context?.contentResolver?.openInputStream(uri)?.use { input ->
|
||||||
PathUtil.getNewEmptySpoofConfig(this).outputStream().use {
|
PathUtil.getNewEmptySpoofConfig(requireContext()).outputStream().use {
|
||||||
input.copyTo(it)
|
input.copyTo(it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} successUi {
|
} successUi {
|
||||||
toast(R.string.toast_import_success)
|
toast(R.string.toast_import_success)
|
||||||
recreate()
|
activity?.recreate()
|
||||||
} failUi {
|
} failUi {
|
||||||
it.printStackTrace()
|
it.printStackTrace()
|
||||||
toast(R.string.toast_import_failed)
|
toast(R.string.toast_import_failed)
|
||||||
@@ -143,9 +127,9 @@ class SpoofActivity : BaseActivity() {
|
|||||||
|
|
||||||
private fun exportDeviceConfig(uri: Uri) {
|
private fun exportDeviceConfig(uri: Uri) {
|
||||||
task {
|
task {
|
||||||
NativeDeviceInfoProvider(this)
|
NativeDeviceInfoProvider(requireContext())
|
||||||
.getNativeDeviceProperties()
|
.getNativeDeviceProperties()
|
||||||
.store(contentResolver.openOutputStream(uri), "DEVICE_CONFIG")
|
.store(context?.contentResolver?.openOutputStream(uri), "DEVICE_CONFIG")
|
||||||
} successUi {
|
} successUi {
|
||||||
toast(R.string.toast_export_success)
|
toast(R.string.toast_export_success)
|
||||||
} failUi {
|
} failUi {
|
||||||
@@ -55,4 +55,9 @@
|
|||||||
android:name="com.aurora.store.view.ui.sale.AppSalesFragment"
|
android:name="com.aurora.store.view.ui.sale.AppSalesFragment"
|
||||||
android:label="@string/title_apps_sale"
|
android:label="@string/title_apps_sale"
|
||||||
tools:layout="@layout/activity_generic_recycler" />
|
tools:layout="@layout/activity_generic_recycler" />
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/spoofFragment"
|
||||||
|
android:name="com.aurora.store.view.ui.spoof.SpoofFragment"
|
||||||
|
android:label="@string/title_spoof_manager"
|
||||||
|
tools:layout="@layout/activity_generic_pager" />
|
||||||
</navigation>
|
</navigation>
|
||||||
Reference in New Issue
Block a user