创建工程

This commit is contained in:
squallzhjch 2023-03-21 17:06:56 +08:00
parent f76c8b050c
commit 1b94b361ca
387 changed files with 46661 additions and 0 deletions

1
.gitignore vendored
View File

@ -1,6 +1,7 @@
*.iml
.gradle
/local.properties
/.idea
/.idea/caches
/.idea/libraries
/.idea/modules.xml

View File

@ -0,0 +1,24 @@
package com.navinfo.omqs
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.Assert.*
/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("com.navinfo.omqs", appContext.packageName)
}
}

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.OMQualityInspection"
tools:targetApi="31">
<activity
android:name=".ui.MainActivity"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/Theme.OMQualityInspection">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

View File

@ -0,0 +1,44 @@
package com.navinfo.omqs
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.navigation.fragment.findNavController
import com.navinfo.omqs.databinding.FragmentFirstBinding
/**
* A simple [Fragment] subclass as the default destination in the navigation.
*/
class FirstFragment : Fragment() {
private var _binding: FragmentFirstBinding? = null
// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = FragmentFirstBinding.inflate(inflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.buttonFirst.setOnClickListener {
findNavController().navigate(R.id.action_FirstFragment_to_SecondFragment)
}
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
}

View File

@ -0,0 +1,44 @@
package com.navinfo.omqs
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.navigation.fragment.findNavController
import com.navinfo.omqs.databinding.FragmentSecondBinding
/**
* A simple [Fragment] subclass as the second destination in the navigation.
*/
class SecondFragment : Fragment() {
private var _binding: FragmentSecondBinding? = null
// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = FragmentSecondBinding.inflate(inflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.buttonSecond.setOnClickListener {
findNavController().navigate(R.id.action_SecondFragment_to_FirstFragment)
}
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
}

View File

@ -0,0 +1,30 @@
package com.navinfo.omqs.ui
import android.os.Bundle
import android.os.PersistableBundle
import androidx.activity.viewModels
import com.navinfo.omqs.databinding.ActivityLoginBinding
class LoginActivity : PermissionsActivity() {
private lateinit var binding: ActivityLoginBinding
private val viewModel by viewModels<LoginActivityViewModel>()
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
binding = ActivityLoginBinding.inflate(layoutInflater)
setContentView(binding.root)
}
override fun onPermissionsGranted() {
initView()
}
private fun initView() {
}
override fun onPermissionsDenied() {
}
}

View File

@ -0,0 +1,7 @@
package com.navinfo.omqs.ui
import androidx.lifecycle.ViewModel
class LoginActivityViewModel : ViewModel() {
}

View File

@ -0,0 +1,62 @@
package com.navinfo.omqs.ui
import android.os.Bundle
import com.google.android.material.snackbar.Snackbar
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.WindowCompat
import androidx.navigation.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.navigateUp
import androidx.navigation.ui.setupActionBarWithNavController
import android.view.Menu
import android.view.MenuItem
import com.navinfo.omqs.R
import com.navinfo.omqs.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private lateinit var appBarConfiguration: AppBarConfiguration
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
WindowCompat.setDecorFitsSystemWindows(window, false)
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
setSupportActionBar(binding.toolbar)
val navController = findNavController(R.id.nav_host_fragment_content_main)
appBarConfiguration = AppBarConfiguration(navController.graph)
setupActionBarWithNavController(navController, appBarConfiguration)
binding.fab.setOnClickListener { view ->
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAnchorView(R.id.fab)
.setAction("Action", null).show()
}
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
// Inflate the menu; this adds items to the action bar if it is present.
menuInflater.inflate(R.menu.menu_main, menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
return when (item.itemId) {
R.id.action_settings -> true
else -> super.onOptionsItemSelected(item)
}
}
override fun onSupportNavigateUp(): Boolean {
val navController = findNavController(R.id.nav_host_fragment_content_main)
return navController.navigateUp(appBarConfiguration)
|| super.onSupportNavigateUp()
}
}

View File

@ -0,0 +1,61 @@
package com.navinfo.omqs.ui
import android.os.Bundle
import android.os.PersistableBundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.hjq.permissions.OnPermissionCallback
import com.hjq.permissions.Permission
import com.hjq.permissions.XXPermissions
/**
* 权限申请Activity
*/
abstract class PermissionsActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
XXPermissions.with(this)
// 申请单个权限
.permission(Permission.WRITE_EXTERNAL_STORAGE)
.permission(Permission.READ_EXTERNAL_STORAGE)
// 设置权限请求拦截器(局部设置)
//.interceptor(new PermissionInterceptor())
// 设置不触发错误检测机制(局部设置)
//.unchecked()
.request(object : OnPermissionCallback {
override fun onGranted(permissions: MutableList<String>, all: Boolean) {
if (!all) {
Toast.makeText(
this@PermissionsActivity,
"获取部分权限成功,但部分权限未正常授予",
Toast.LENGTH_SHORT
)
.show()
onPermissionsGranted()
return
}
// 在SD卡创建项目目录
}
override fun onDenied(permissions: MutableList<String>, never: Boolean) {
if (never) {
Toast.makeText(
this@PermissionsActivity,
"永久拒绝授权,请手动授权文件读写权限",
Toast.LENGTH_SHORT
)
.show()
// 如果是被永久拒绝就跳转到应用权限系统设置页面
XXPermissions.startPermissionActivity(this@PermissionsActivity, permissions)
onPermissionsDenied()
} else {
}
}
})
}
abstract fun onPermissionsGranted()
abstract fun onPermissionsDenied()
}

View File

@ -0,0 +1,30 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
<aapt:attr name="android:fillColor">
<gradient
android:endX="85.84757"
android:endY="92.4963"
android:startX="42.9492"
android:startY="49.59793"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>

View File

@ -0,0 +1,170 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#3DDC84"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
</vector>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:fitsSystemWindows="true"
tools:context=".ui.LoginActivity">
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".ui.MainActivity">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" />
</com.google.android.material.appbar.AppBarLayout>
<include layout="@layout/content_main" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="@dimen/fab_margin"
android:layout_marginBottom="16dp"
app:srcCompat="@android:drawable/ic_dialog_email" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<fragment
android:id="@+id/nav_host_fragment_content_main"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="0dp"
android:layout_height="0dp"
app:defaultNavHost="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:navGraph="@navigation/nav_graph" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".FirstFragment">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">
<Button
android:id="@+id/button_first"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/next"
app:layout_constraintBottom_toTopOf="@id/textview_first"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
/>
<TextView
android:id="@+id/textview_first"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/lorem_ipsum"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/button_first" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SecondFragment">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">
<Button
android:id="@+id/button_second"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/previous"
app:layout_constraintBottom_toTopOf="@id/textview_second"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textview_second"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/lorem_ipsum"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/button_second" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>

View File

@ -0,0 +1,10 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.navinfo.omqs.ui.MainActivity">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never" />
</menu>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 982 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph"
app:startDestination="@id/FirstFragment">
<fragment
android:id="@+id/FirstFragment"
android:name="com.navinfo.omqs.FirstFragment"
android:label="@string/first_fragment_label"
tools:layout="@layout/fragment_first">
<action
android:id="@+id/action_FirstFragment_to_SecondFragment"
app:destination="@id/SecondFragment" />
</fragment>
<fragment
android:id="@+id/SecondFragment"
android:name="com.navinfo.omqs.SecondFragment"
android:label="@string/second_fragment_label"
tools:layout="@layout/fragment_second">
<action
android:id="@+id/action_SecondFragment_to_FirstFragment"
app:destination="@id/FirstFragment" />
</fragment>
</navigation>

View File

@ -0,0 +1,3 @@
<resources>
<dimen name="fab_margin">48dp</dimen>
</resources>

View File

@ -0,0 +1,7 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Base.Theme.OMQualityInspection" parent="Theme.Material3.DayNight.NoActionBar">
<!-- Customize your dark theme here. -->
<!-- <item name="colorPrimary">@color/my_dark_primary</item> -->
</style>
</resources>

View File

@ -0,0 +1,9 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="Theme.OMQualityInspection" parent="Base.Theme.OMQualityInspection">
<!-- Transparent system bars for edge-to-edge. -->
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowLightStatusBar">?attr/isLightTheme</item>
</style>
</resources>

View File

@ -0,0 +1,3 @@
<resources>
<dimen name="fab_margin">200dp</dimen>
</resources>

View File

@ -0,0 +1,3 @@
<resources>
<dimen name="fab_margin">48dp</dimen>
</resources>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
</resources>

View File

@ -0,0 +1,3 @@
<resources>
<dimen name="fab_margin">16dp</dimen>
</resources>

View File

@ -0,0 +1,46 @@
<resources>
<string name="app_name">OMQualityInspection</string>
<string name="action_settings">Settings</string>
<!-- Strings used for fragments for navigation -->
<string name="first_fragment_label">First Fragment</string>
<string name="second_fragment_label">Second Fragment</string>
<string name="next">Next</string>
<string name="previous">Previous</string>
<string name="lorem_ipsum">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam in scelerisque sem. Mauris
volutpat, dolor id interdum ullamcorper, risus dolor egestas lectus, sit amet mattis purus
dui nec risus. Maecenas non sodales nisi, vel dictum dolor. Class aptent taciti sociosqu ad
litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse blandit eleifend
diam, vel rutrum tellus vulputate quis. Aliquam eget libero aliquet, imperdiet nisl a,
ornare ex. Sed rhoncus est ut libero porta lobortis. Fusce in dictum tellus.\n\n
Suspendisse interdum ornare ante. Aliquam nec cursus lorem. Morbi id magna felis. Vivamus
egestas, est a condimentum egestas, turpis nisl iaculis ipsum, in dictum tellus dolor sed
neque. Morbi tellus erat, dapibus ut sem a, iaculis tincidunt dui. Interdum et malesuada
fames ac ante ipsum primis in faucibus. Curabitur et eros porttitor, ultricies urna vitae,
molestie nibh. Phasellus at commodo eros, non aliquet metus. Sed maximus nisl nec dolor
bibendum, vel congue leo egestas.\n\n
Sed interdum tortor nibh, in sagittis risus mollis quis. Curabitur mi odio, condimentum sit
amet auctor at, mollis non turpis. Nullam pretium libero vestibulum, finibus orci vel,
molestie quam. Fusce blandit tincidunt nulla, quis sollicitudin libero facilisis et. Integer
interdum nunc ligula, et fermentum metus hendrerit id. Vestibulum lectus felis, dictum at
lacinia sit amet, tristique id quam. Cras eu consequat dui. Suspendisse sodales nunc ligula,
in lobortis sem porta sed. Integer id ultrices magna, in luctus elit. Sed a pellentesque
est.\n\n
Aenean nunc velit, lacinia sed dolor sed, ultrices viverra nulla. Etiam a venenatis nibh.
Morbi laoreet, tortor sed facilisis varius, nibh orci rhoncus nulla, id elementum leo dui
non lorem. Nam mollis ipsum quis auctor varius. Quisque elementum eu libero sed commodo. In
eros nisl, imperdiet vel imperdiet et, scelerisque a mauris. Pellentesque varius ex nunc,
quis imperdiet eros placerat ac. Duis finibus orci et est auctor tincidunt. Sed non viverra
ipsum. Nunc quis augue egestas, cursus lorem at, molestie sem. Morbi a consectetur ipsum, a
placerat diam. Etiam vulputate dignissim convallis. Integer faucibus mauris sit amet finibus
convallis.\n\n
Phasellus in aliquet mi. Pellentesque habitant morbi tristique senectus et netus et
malesuada fames ac turpis egestas. In volutpat arcu ut felis sagittis, in finibus massa
gravida. Pellentesque id tellus orci. Integer dictum, lorem sed efficitur ullamcorper,
libero justo consectetur ipsum, in mollis nisl ex sed nisl. Donec maximus ullamcorper
sodales. Praesent bibendum rhoncus tellus nec feugiat. In a ornare nulla. Donec rhoncus
libero vel nunc consequat, quis tincidunt nisl eleifend. Cras bibendum enim a justo luctus
vestibulum. Fusce dictum libero quis erat maximus, vitae volutpat diam dignissim.
</string>
</resources>

View File

@ -0,0 +1,9 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Base.Theme.OMQualityInspection" parent="Theme.Material3.DayNight.NoActionBar">
<!-- Customize your light theme here. -->
<!-- <item name="colorPrimary">@color/my_light_primary</item> -->
</style>
<style name="Theme.OMQualityInspection" parent="Base.Theme.OMQualityInspection" />
</resources>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?><!--
Sample backup rules file; uncomment and customize as necessary.
See https://developer.android.com/guide/topics/data/autobackup
for details.
Note: This file is ignored for devices older that API 31
See https://developer.android.com/about/versions/12/backup-restore
-->
<full-backup-content>
<!--
<include domain="sharedpref" path="."/>
<exclude domain="sharedpref" path="device.xml"/>
-->
</full-backup-content>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?><!--
Sample data extraction rules file; uncomment and customize as necessary.
See https://developer.android.com/about/versions/12/backup-restore#xml-changes
for details.
-->
<data-extraction-rules>
<cloud-backup>
<!-- TODO: Use <include> and <exclude> to control what is backed up.
<include .../>
<exclude .../>
-->
</cloud-backup>
<!--
<device-transfer>
<include .../>
<exclude .../>
</device-transfer>
-->
</data-extraction-rules>

View File

@ -0,0 +1,17 @@
package com.navinfo.omqs
import org.junit.Test
import org.junit.Assert.*
/**
* Example local unit test, which will execute on the development machine (host).
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
class ExampleUnitTest {
@Test
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,26 @@
package com.navinfo.collect.library;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.navinfo.collect.library.test", appContext.getPackageName());
}
}

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.navinfo.collect.library">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<queries>
<intent>
<action android:name="android.intent.action.GET_CONTENT" />
<data android:mimeType="*/*"/>
</intent>
</queries>
<!-- <application-->
<!-- android:allowBackup="true"-->
<!-- >-->
<!-- <activity-->
<!-- android:name="com.navinfo.ocr.CameraActivity"-->
<!-- android:exported="true"/>-->
<!-- </application>-->
</manifest>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,2 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657094146338" class="icon" viewBox="0 0 1275 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29512" width="159.375" height="128" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
</style></defs><path d="M434.01678069 96.35177165a94.289884 94.289884 0 0 0-133.25765214 0L123.48607034 273.6248307A40.38110706 40.38110706 0 0 0 180.5243836 331.26886006l146.48246438-146.98722794v683.24832532a40.38110706 40.38110706 0 0 0 80.76221328 0V184.28163212L554.25152647 331.26886006c0.60571692 0.70666946 1.31238556 1.31238556 2.01905503 2.01905585a40.38110706 40.38110706 0 0 0 55.01925824-59.15832165zM1151.48809462 650.58246162a40.38110706 40.38110706 0 0 0-57.03831326-2.01905503 19.08007305 19.08007305 0 0 0-2.01905503 2.01905503l-146.28055929 146.38151184V113.71564814a40.38110706 40.38110706 0 0 0-80.76221329 0v683.24832532l-146.38151184-146.38151184a40.38110706 40.38110706 0 0 0-59.15832166 55.01925824l2.01905502 2.01905503 177.37401161 177.27305822a93.98702554 93.98702554 0 0 0 133.15669958 0l177.27305823-177.27305822a40.38110706 40.38110706 0 0 0 1.81714993-57.03831327z" p-id="29513"></path></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657094325064" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="30475" width="128" height="128" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
</style></defs><path d="M873.6 419.2l-355.2-361.6c-9.6-9.6-22.4-9.6-32 0l-355.2 368c-9.6 9.6-9.6 22.4 0 32 9.6 9.6 22.4 9.6 32 0l316.8-329.6 0 828.8c0 12.8 9.6 22.4 22.4 22.4s22.4-9.6 22.4-22.4l0-822.4 310.4 316.8c9.6 9.6 22.4 9.6 32 0C883.2 441.6 883.2 425.6 873.6 419.2z" p-id="30476"></path></svg>

After

Width:  |  Height:  |  Size: 969 B

View File

@ -0,0 +1,2 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657094405338" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="32402" width="128" height="128" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
</style></defs><path d="M517.12 944.64c-236.11392 0-427.52-191.40608-427.52-427.52 0-236.11392 191.40608-427.52 427.52-427.52 236.11392 0 427.52 191.40608 427.52 427.52C944.64 753.23392 753.23392 944.64 517.12 944.64zM517.12 143.04256c-206.59712 0-374.08256 167.48544-374.08256 374.08256S310.52288 891.20256 517.12 891.20256c206.60224 0 374.08256-167.48544 374.08256-374.08256S723.72224 143.04256 517.12 143.04256zM555.06432 517.26848l113.2032 113.2032c10.42432 10.42944 10.42432 27.3664 0 37.79584-10.43456 10.42944-27.35104 10.42944-37.79584 0l-113.2032-113.20832-113.99168 113.9712c-10.51648 10.5216-27.5712 10.5216-38.07744 0-10.51648-10.5216-10.51648-27.5712 0-38.07744l113.98144-113.98144L365.97248 403.75296c-10.43456-10.42944-10.43456-27.35104 0-37.78048 10.43456-10.43968 27.34592-10.43968 37.79072 0l113.21344 113.20832 114.82112-114.82112c10.51648-10.5216 27.5712-10.5216 38.08256 0 10.51648 10.51136 10.51648 27.5712 0 38.08256L555.06432 517.26848z" p-id="32403"></path></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657094355936" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="31435" width="128" height="128" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
</style></defs><path d="M921.6 563.2c-9.6-9.6-25.6-9.6-35.2 0L544 896l0-822.4c0-12.8-9.6-22.4-25.6-22.4s-25.6 9.6-25.6 22.4L492.8 896l-342.4-339.2c-9.6-9.6-25.6-9.6-35.2 0-9.6 9.6-9.6 22.4 0 32l384 377.6c6.4 6.4 12.8 6.4 19.2 6.4 0 0 0 0 0 0 3.2 0 3.2 0 6.4 0 0 0 0 0 3.2 0 3.2 0 6.4-3.2 9.6-6.4l380.8-371.2C931.2 588.8 931.2 572.8 921.6 563.2z" p-id="31436"></path></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,7 @@
<svg width="1200" height="400" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<polyline points="0,0 1200,0 1200,400 0,400 0,0" style="stroke:#f701ef; stroke-width:18;fill:#f701ef;" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 236 B

View File

@ -0,0 +1,7 @@
<svg width="800" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<rect stroke="#000" id="svg_2" height="255" width="33" y="1" x="377" fill="#f701ef"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 197 B

View File

@ -0,0 +1,7 @@
<svg width="800" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<rect stroke="#ffffff" id="svg_2" height="255" width="33" y="1" x="377" fill="#067eb6"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 200 B

View File

@ -0,0 +1,7 @@
<svg width="800" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<rect stroke="#ffffff" id="svg_2" height="255" width="33" y="1" x="377" fill="#61b836"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 200 B

View File

@ -0,0 +1,7 @@
<svg width="800" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<rect stroke="#ffffff" id="svg_2" height="255" width="33" y="1" x="377" fill="#ffffff"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 200 B

View File

@ -0,0 +1,7 @@
<svg width="800" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<rect stroke="#ffffff" id="svg_2" height="255" width="33" y="1" x="377" fill="#869021"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 200 B

View File

@ -0,0 +1,7 @@
<svg width="1200" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<polyline points="0,0 600,600 1200,0" style="stroke:#f701ef; stroke-width:24;fill:#f701ef; fill-opacity:0.01" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 225 B

View File

@ -0,0 +1,7 @@
<svg width="1200" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<polyline points="0,0 600,600 1200,0" style="stroke:#067eb6; stroke-width:24;fill:#067eb6; fill-opacity:0.01" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 225 B

View File

@ -0,0 +1,7 @@
<svg width="1200" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<polyline points="0,0 600,600 1200,0" style="stroke:#61b836; stroke-width:24;fill:#61b836; fill-opacity:0.01" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 225 B

View File

@ -0,0 +1,7 @@
<svg width="1200" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<polyline points="0,0 600,600 1200,0" style="stroke:#ffffff; stroke-width:24;fill:#ffffff; fill-opacity:0.01" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 225 B

View File

@ -0,0 +1,7 @@
<svg width="1200" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<polyline points="0,0 600,600 1200,0" style="stroke:#869021; stroke-width:24;fill:#869021; fill-opacity:0.01" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 225 B

View File

@ -0,0 +1,7 @@
<svg width="1200" height="400" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<ellipse stroke="#f701ef" ry="198.50001" rx="528.5" id="svg_1" cy="199.49999" cx="603.5" fill="#ff00ff"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 218 B

View File

@ -0,0 +1,7 @@
<svg width="1000" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<polyline points="0,300 500,0 1000,300 500,600 0,300" stroke-dasharray="18 18" style="stroke:red; stroke-width:18;fill:#ffffff; fill-opacity:0.01" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 262 B

View File

@ -0,0 +1,7 @@
<svg width="1000" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<polyline points="0,300 500,0 1000,300 500,600 0,300" stroke-dasharray="18 18" style="stroke:#067eb6; stroke-width:18;fill:#067eb6; fill-opacity:0.01" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 266 B

View File

@ -0,0 +1,7 @@
<svg width="1000" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<polyline points="0,300 500,0 1000,300 500,600 0,300" stroke-dasharray="18 18" style="stroke:#61b836; stroke-width:18;fill:#61b836; fill-opacity:0.01" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 266 B

View File

@ -0,0 +1,7 @@
<svg width="1000" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<polyline points="0,300 500,0 1000,300 500,600 0,300" stroke-dasharray="18 18" style="stroke:white; stroke-width:18;fill:#ffffff; fill-opacity:0.01" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 264 B

View File

@ -0,0 +1,7 @@
<svg width="1000" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<polyline points="0,300 500,0 1000,300 500,600 0,300" stroke-dasharray="18 18" style="stroke:#869021; stroke-width:18;fill:#869021; fill-opacity:0.01" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 266 B

View File

@ -0,0 +1,7 @@
<svg width="600" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<polyline points="500,0 100,600" style="stroke:red; stroke-width:24;fill:#ffffff; fill-opacity:0.01" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 215 B

View File

@ -0,0 +1,7 @@
<svg width="600" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<polyline points="500,0 100,600" style="stroke:#067eb6; stroke-width:24;fill:#067eb6; fill-opacity:0.01" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 219 B

View File

@ -0,0 +1,7 @@
<svg width="600" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<polyline points="500,0 100,600" style="stroke:#61b836; stroke-width:24;fill:#61b836; fill-opacity:0.01" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 219 B

View File

@ -0,0 +1,7 @@
<svg width="600" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<polyline points="500,0 100,600" style="stroke:white; stroke-width:24;fill:#ffffff; fill-opacity:0.01" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 217 B

View File

@ -0,0 +1,7 @@
<svg width="600" height="600" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<polyline points="500,0 100,600" style="stroke:#869021; stroke-width:24;fill:#869021; fill-opacity:0.01" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 219 B

View File

@ -0,0 +1,2 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657087954885" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3764" width="128" height="128" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
</style></defs><path d="M904 476H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" p-id="3765"></path></svg>

After

Width:  |  Height:  |  Size: 808 B

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,2 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1656989993111" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2227" width="128" height="128" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
</style></defs><path d="M511.998 511.994m-511.994 0a511.994 511.994 0 1 0 1023.988 0 511.994 511.994 0 1 0-1023.988 0Z" fill="#FC4747" p-id="2228"></path><path d="M1023.998 512c0 282.766-229.234 512-512 512-184.166 0-345.622-97.242-435.822-243.194 83.94 60.202 186.862 95.656 298.042 95.656 282.786 0 512-229.234 512-512 0-98.58-27.856-190.672-76.158-268.786C939.604 188.572 1023.998 340.434 1023.998 512z" fill="#E03636" p-id="2229"></path><path d="M511.998 511.994m-394.696 0a394.696 394.696 0 1 0 789.392 0 394.696 394.696 0 1 0-789.392 0Z" fill="#EFEFEF" p-id="2230"></path><path d="M906.688 512.002c0 217.972-176.712 394.684-394.684 394.684-150.646 0-281.592-84.414-348.092-208.522 66.214 50.278 148.814 80.112 238.376 80.112 217.972 0 394.684-176.712 394.684-394.684 0-67.326-16.862-130.716-46.592-186.184 94.974 72.082 156.308 186.164 156.308 314.594z" fill="#E0E0E0" p-id="2231"></path><path d="M396.34 483.346c55.828 0 98.908 24.618 98.908 92.314v8.352c0 70.334-43.958 96.708-98.466 96.708-63.74 0-98.908-36.926-98.908-77.806 0-16.704 8.794-21.54 22.86-21.54 19.34 0 23.736 7.912 23.736 18.464 0 25.054 22.858 39.562 51.432 39.562 32.968 0 52.75-17.584 52.75-55.388v-8.352c0-37.366-19.782-55.388-52.312-55.388H332.6c-15.384 0-19.782-7.034-19.782-18.022 0-3.08 0.442-7.474 0.88-10.552l10.112-119.564c0.88-9.672 3.956-15.388 10.55-15.388h130.554c9.672 0 14.508 10.552 14.508 20.66 0 10.552-4.834 20.66-14.508 20.66h-101.542l-6.152 85.28h39.12zM529.512 582.69v-127.916c0-71.212 42.642-98.028 98.466-98.028 55.388 0 98.908 26.816 98.908 98.028v127.916c0 71.212-43.52 98.028-98.908 98.028-55.826 0-98.466-26.816-98.466-98.028z m150.776-127.916c0-38.682-19.782-56.708-52.312-56.708-32.968 0-51.87 18.026-51.87 56.708v127.916c0 38.686 18.902 56.708 51.87 56.708 32.53 0 52.312-18.022 52.312-56.708v-127.916z" fill="#3F414C" p-id="2232"></path></svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<rendertheme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" map-background="#3c3f41"
version="1" xmlns="http://opensciencemap.org/rendertheme"
xsi:schemaLocation="http://opensciencemap.org/rendertheme https://raw.githubusercontent.com/mapsforge/vtm/master/resources/rendertheme.xsd">
</rendertheme>

View File

@ -0,0 +1,11 @@
<svg width="580" height="580" xmlns="http://www.w3.org/2000/svg" version="1.0">
<metadata id="metadata10"/>
<g>
<title>Layer 1</title>
<g transform="rotate(-179.925 290 290)" id="svg_1">
<path stroke="#ffffff" shape-rendering="auto" filter-blend-mode="normal" stroke-linejoin="round" fill="none" solid-opacity="1" color-interpolation="sRGB" isolation="auto" stroke-width="64" color-rendering="auto" image-rendering="auto" color="#000000" filter-gaussianBlur-deviation="0" color-interpolation-filters="linearRGB" opacity="0.8" solid-color="#000000" mix-blend-mode="normal" d="m30,261l286,0l0,-72.5l234,101.85l-234,101.15l0,-72.5l-286,0l0,-58z" id="path4151"/>
<path fill="#6a6a6a" id="path4136" d="m30,261l286,0l0,-72.5l234,101.85l-234,101.15l0,-72.5l-286,0l0,-58z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 799 B

View File

@ -0,0 +1,2 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657092466270" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="27422" width="128" height="128" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
</style></defs><path d="M512 192c195.2 0 352 156.8 352 352 0 96-38.4 182.4-102.4 249.6-12.8 12.8-32 12.8-44.8 0s-12.8-32 0-44.8l12.8-12.8c-6.4-6.4-6.4-12.8-3.2-19.2v-3.2l19.2-25.6c6.4-6.4 12.8-6.4 19.2-3.2 16-28.8 25.6-60.8 32-92.8-6.4 0-12.8-6.4-12.8-16v-3.2l3.2-32c0-6.4 6.4-12.8 12.8-12.8h3.2c-3.2-32-9.6-64-22.4-92.8-6.4 3.2-16 0-19.2-6.4v-3.2l-12.8-28.8c-3.2-6.4 0-16 3.2-19.2-19.2-25.6-41.6-51.2-70.4-67.2-3.2 6.4-12.8 9.6-19.2 6.4h-3.2l-25.6-16c-6.4-3.2-9.6-12.8-6.4-19.2-28.8-12.8-60.8-19.2-92.8-19.2 0 6.4-6.4 12.8-12.8 16h-35.2c-6.4 0-12.8-3.2-16-12.8-32 6.4-64 16-92.8 32 3.2 6.4 3.2 12.8-3.2 19.2l-3.2 3.2-25.6 16c-6.4 3.2-12.8 3.2-19.2 0-25.6 22.4-44.8 48-60.8 76.8 6.4 3.2 9.6 9.6 6.4 16v3.2l-12.8 28.8c-3.2 6.4-9.6 9.6-16 9.6-12.8 19.2-19.2 44.8-19.2 73.6v16c6.4 0 12.8 3.2 16 12.8v3.2l3.2 32c0 6.4-3.2 12.8-9.6 16 9.6 32 22.4 60.8 41.6 89.6 6.4-3.2 12.8-3.2 19.2 0l3.2 3.2 19.2 25.6c6.4 6.4 3.2 16 0 19.2 3.2 12.8 0 25.6-6.4 32-12.8 12.8-32 12.8-44.8 0C198.4 726.4 160 640 160 544c0-195.2 160-352 352-352z" fill="#8a8a8a" p-id="27423"></path><path d="M512 416c16 0 28.8 12.8 32 28.8v108.8c19.2 9.6 32 32 32 54.4 0 35.2-28.8 64-64 64s-64-28.8-64-64c0-22.4 12.8-44.8 32-54.4v-108.8c3.2-16 16-28.8 32-28.8z" fill="#8a8a8a" p-id="27424"></path></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657092466270" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="27422" width="128" height="128" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
</style></defs><path d="M512 192c195.2 0 352 156.8 352 352 0 96-38.4 182.4-102.4 249.6-12.8 12.8-32 12.8-44.8 0s-12.8-32 0-44.8l12.8-12.8c-6.4-6.4-6.4-12.8-3.2-19.2v-3.2l19.2-25.6c6.4-6.4 12.8-6.4 19.2-3.2 16-28.8 25.6-60.8 32-92.8-6.4 0-12.8-6.4-12.8-16v-3.2l3.2-32c0-6.4 6.4-12.8 12.8-12.8h3.2c-3.2-32-9.6-64-22.4-92.8-6.4 3.2-16 0-19.2-6.4v-3.2l-12.8-28.8c-3.2-6.4 0-16 3.2-19.2-19.2-25.6-41.6-51.2-70.4-67.2-3.2 6.4-12.8 9.6-19.2 6.4h-3.2l-25.6-16c-6.4-3.2-9.6-12.8-6.4-19.2-28.8-12.8-60.8-19.2-92.8-19.2 0 6.4-6.4 12.8-12.8 16h-35.2c-6.4 0-12.8-3.2-16-12.8-32 6.4-64 16-92.8 32 3.2 6.4 3.2 12.8-3.2 19.2l-3.2 3.2-25.6 16c-6.4 3.2-12.8 3.2-19.2 0-25.6 22.4-44.8 48-60.8 76.8 6.4 3.2 9.6 9.6 6.4 16v3.2l-12.8 28.8c-3.2 6.4-9.6 9.6-16 9.6-12.8 19.2-19.2 44.8-19.2 73.6v16c6.4 0 12.8 3.2 16 12.8v3.2l3.2 32c0 6.4-3.2 12.8-9.6 16 9.6 32 22.4 60.8 41.6 89.6 6.4-3.2 12.8-3.2 19.2 0l3.2 3.2 19.2 25.6c6.4 6.4 3.2 16 0 19.2 3.2 12.8 0 25.6-6.4 32-12.8 12.8-32 12.8-44.8 0C198.4 726.4 160 640 160 544c0-195.2 160-352 352-352z" fill="#221814" p-id="27423"></path><path d="M512 416c16 0 28.8 12.8 32 28.8v108.8c19.2 9.6 32 32 32 54.4 0 35.2-28.8 64-64 64s-64-28.8-64-64c0-22.4 12.8-44.8 32-54.4v-108.8c3.2-16 16-28.8 32-28.8z" fill="#C70019" p-id="27424"></path></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657090496060" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8333" width="128" height="128" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
</style></defs><path d="M512 375.466667c-95.573333 0-197.973333 20.48-307.2 64.853333-58.026667-23.893333-116.053333-40.96-170.666667-51.2v68.266667c23.893333 3.413333 44.373333 10.24 68.266667 17.066666v375.466667h68.266667V501.76c6.826667 3.413333 13.653333 6.826667 20.48 6.826667l13.653333 6.826666 13.653333-6.826666c6.826667-3.413333 13.653333-6.826667 20.48-6.826667V853.333333h68.266667V477.866667c71.68-23.893333 139.946667-34.133333 204.8-34.133334 61.44 0 129.706667 10.24 204.8 34.133334v375.466666h68.266667V501.76c6.826667 3.413333 13.653333 6.826667 20.48 6.826667l13.653333 6.826666 13.653333-6.826666c6.826667-3.413333 13.653333-6.826667 20.48-6.826667V853.333333h68.266667V474.453333c20.48-6.826667 44.373333-13.653333 68.266667-17.066666v-68.266667c-64.853333 13.653333-122.88 34.133333-170.666667 51.2-112.64-44.373333-218.453333-64.853333-307.2-64.853333zM34.133333 204.8v68.266667h955.733334V204.8H34.133333z" p-id="8334"></path></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657090294817" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6891" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
</style></defs><path d="M477.866667 884.053333h68.266666V819.2h-68.266666v64.853333z m0 102.4h68.266666V921.6h-68.266666v64.853333z m0-204.8h68.266666V716.8h-68.266666v64.853333zM515.413333 34.133333c-262.826667 0-477.866667 215.04-477.866666 477.866667v443.733333c0 13.653333 10.24 27.306667 23.893333 34.133334h10.24c10.24 0 20.48-6.826667 27.306667-17.066667L290.133333 682.666667h440.32l197.973334 293.546666c6.826667 13.653333 23.893333 17.066667 37.546666 13.653334 13.653333-3.413333 23.893333-17.066667 23.893334-34.133334V512c3.413333-262.826667-211.626667-477.866667-474.453334-477.866667zM716.8 614.4H307.2v-102.4c0-112.64 92.16-204.8 204.8-204.8s204.8 92.16 204.8 204.8v102.4z m208.213333 228.693333l-139.946666-204.8V512c0-150.186667-122.88-273.066667-273.066667-273.066667s-273.066667 122.88-273.066667 273.066667v126.293333l-133.12 201.386667V512c0-225.28 184.32-409.6 409.6-409.6s409.6 184.32 409.6 409.6v331.093333z" p-id="6892"></path></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

Some files were not shown because too many files have changed in this diff Show More