Allow exporting current device config

This commit is contained in:
Rahul Kumar Patel
2021-05-14 02:52:55 +05:30
parent 2cb10c2fd4
commit 9f1feb9ea1
5 changed files with 101 additions and 12 deletions

View File

@@ -20,6 +20,7 @@
package com.aurora.store.view.ui.all package com.aurora.store.view.ui.all
import android.os.Bundle import android.os.Bundle
import android.view.MenuItem
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
@@ -28,7 +29,6 @@ import com.aurora.gplayapi.data.models.AuthData
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.providers.AuthProvider
import com.aurora.store.databinding.ActivityGenericPagerBinding import com.aurora.store.databinding.ActivityGenericPagerBinding
import com.aurora.extensions.close
import com.aurora.store.view.ui.commons.BaseActivity 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
@@ -59,10 +59,24 @@ class AppsGamesActivity : BaseActivity() {
attachViewPager() attachViewPager()
} }
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
android.R.id.home -> {
onBackPressed()
return true
}
}
return super.onOptionsItemSelected(item)
}
private fun attachToolbar() { private fun attachToolbar() {
B.layoutToolbarAction.txtTitle.text = getString(R.string.title_apps_games) setSupportActionBar(B.layoutActionToolbar.toolbar)
B.layoutToolbarAction.imgActionPrimary.setOnClickListener { val actionBar = supportActionBar
close() if (actionBar != null) {
actionBar.setDisplayShowCustomEnabled(true)
actionBar.setDisplayHomeAsUpEnabled(true)
actionBar.elevation = 0f
actionBar.title = getString(R.string.title_apps_games)
} }
} }

View File

@@ -20,16 +20,25 @@
package com.aurora.store.view.ui.spoof package com.aurora.store.view.ui.spoof
import android.os.Bundle import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
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.viewpager2.adapter.FragmentStateAdapter import androidx.viewpager2.adapter.FragmentStateAdapter
import com.aurora.store.R
import com.aurora.store.databinding.ActivityGenericPagerBinding
import com.aurora.extensions.close import com.aurora.extensions.close
import com.aurora.extensions.toast
import com.aurora.store.R
import com.aurora.store.data.providers.NativeDeviceInfoProvider
import com.aurora.store.databinding.ActivityGenericPagerBinding
import com.aurora.store.util.PathUtil
import com.aurora.store.view.ui.commons.BaseActivity 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.ui.failUi
import nl.komponents.kovenant.ui.successUi
import java.io.FileOutputStream
class SpoofActivity : BaseActivity() { class SpoofActivity : BaseActivity() {
@@ -55,10 +64,32 @@ class SpoofActivity : BaseActivity() {
attachViewPager() 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 -> {
onBackPressed()
return true
}
R.id.action_export -> {
exportDeviceConfig()
}
}
return super.onOptionsItemSelected(item)
}
private fun attachToolbar() { private fun attachToolbar() {
B.layoutToolbarAction.txtTitle.text = getString(R.string.title_spoof_manager) setSupportActionBar(B.layoutActionToolbar.toolbar)
B.layoutToolbarAction.imgActionPrimary.setOnClickListener { val actionBar = supportActionBar
close() if (actionBar != null) {
actionBar.setDisplayShowCustomEnabled(true)
actionBar.setDisplayHomeAsUpEnabled(true)
actionBar.elevation = 0f
actionBar.title = getString(R.string.title_spoof_manager)
} }
} }
@@ -75,6 +106,24 @@ class SpoofActivity : BaseActivity() {
}.attach() }.attach()
} }
private fun exportDeviceConfig() {
task {
NativeDeviceInfoProvider(this)
.getNativeDeviceProperties()
.store(
FileOutputStream(
PathUtil.getExternalPath() + "/native-device.properties.export"
),
"DEVICE_CONFIG"
)
} successUi {
toast(R.string.toast_export_success)
} failUi {
it.printStackTrace()
toast(R.string.toast_export_failed)
}
}
internal class ViewPagerAdapter(fragment: FragmentManager, lifecycle: Lifecycle) : internal class ViewPagerAdapter(fragment: FragmentManager, lifecycle: Lifecycle) :
FragmentStateAdapter(fragment, lifecycle) { FragmentStateAdapter(fragment, lifecycle) {
override fun createFragment(position: Int): Fragment { override fun createFragment(position: Int): Fragment {

View File

@@ -23,14 +23,14 @@
android:layout_height="match_parent"> android:layout_height="match_parent">
<include <include
android:id="@+id/layout_toolbar_action" android:id="@+id/layout_action_toolbar"
layout="@layout/view_toolbar_action" /> layout="@layout/view_toolbar_native" />
<com.google.android.material.tabs.TabLayout <com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout" android:id="@+id/tab_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/layout_toolbar_action" android:layout_below="@id/layout_action_toolbar"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:paddingStart="@dimen/margin_large" android:paddingStart="@dimen/margin_large"
android:paddingEnd="@dimen/margin_large" android:paddingEnd="@dimen/margin_large"

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ 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/>.
~
-->
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_export"
android:title="@string/action_export" />
</menu>

View File

@@ -364,4 +364,6 @@
<string name="toast_rated_success">Rated successfully</string> <string name="toast_rated_success">Rated successfully</string>
<string name="toast_rated_failed">Failed to submit rating</string> <string name="toast_rated_failed">Failed to submit rating</string>
<string name="toast_aas_token_failed">Failed to generate AAS Token</string> <string name="toast_aas_token_failed">Failed to generate AAS Token</string>
<string name="toast_export_success">Device config exported successfully</string>
<string name="toast_export_failed">Failed to export device config</string>
</resources> </resources>