完成版

This commit is contained in:
lihongwei 2024-12-20 09:58:36 +08:00
parent 79b5e55fb6
commit 0effff6d10
48 changed files with 197 additions and 295 deletions

BIN
app/ARTraceArtPro.jks Normal file

Binary file not shown.

View File

@ -6,11 +6,11 @@ plugins {
} }
val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date()) val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date())
android { android {
namespace = "com.key.artraceartpro" namespace = "com.ar.artraceartpro"
compileSdk = 34 compileSdk = 34
defaultConfig { defaultConfig {
applicationId = "com.key.artraceartpro" applicationId = "com.ar.artraceartpro"
minSdk = 23 minSdk = 23
targetSdk = 34 targetSdk = 34
versionCode = 1 versionCode = 1

View File

@ -18,4 +18,16 @@
# If you keep the line number information, uncomment this to # If you keep the line number information, uncomment this to
# hide the original source file name. # hide the original source file name.
#-renamesourcefileattribute SourceFile #-renamesourcefileattribute SourceFile
-keepclassmembers class com.ar.artraceartpro.MyApplication {
public static final java.lang.String Database_Name;
public static final int Database_Version;
}
-keepclassmembers class * {
@androidx.room.Query <methods>;
}
-keep class com.ar.artraceartpro.data.local.database.AppDatabase { *; }
-keep class com.ar.artraceartpro.data.local.entity.ImageData { *; }
-keep class com.ar.artraceartpro.data.local.dao.ImageDataDao { *; }

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro; package com.ar.artraceartpro;
import android.content.Context; import android.content.Context;

Binary file not shown.

After

Width:  |  Height:  |  Size: 793 KiB

View File

@ -1,19 +1,12 @@
package com.key.artraceartpro; package com.ar.artraceartpro;
import android.app.Application; import android.app.Application;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import androidx.annotation.NonNull; import com.ar.artraceartpro.data.local.entity.ImageData;
import androidx.lifecycle.ViewModel; import com.ar.artraceartpro.data.repository.ImageRepository;
import androidx.lifecycle.ViewModelProvider; import com.ar.artraceartpro.utils.Files;
import androidx.lifecycle.ViewModelStore;
import androidx.lifecycle.ViewModelStoreOwner;
import com.key.artraceartpro.data.local.entity.ImageData;
import com.key.artraceartpro.data.repository.ImageRepository;
import com.key.artraceartpro.utils.Files;
import com.key.artraceartpro.viewmodel.ImageViewModel;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro.data.local.dao; package com.ar.artraceartpro.data.local.dao;
import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;
import androidx.room.Dao; import androidx.room.Dao;
@ -6,7 +6,7 @@ import androidx.room.Insert;
import androidx.room.Query; import androidx.room.Query;
import androidx.room.Update; import androidx.room.Update;
import com.key.artraceartpro.data.local.entity.ImageData; import com.ar.artraceartpro.data.local.entity.ImageData;
import java.util.List; import java.util.List;

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro.data.local.database; package com.ar.artraceartpro.data.local.database;
import android.content.Context; import android.content.Context;
@ -6,14 +6,15 @@ import androidx.room.Database;
import androidx.room.Room; import androidx.room.Room;
import androidx.room.RoomDatabase; import androidx.room.RoomDatabase;
import com.key.artraceartpro.MyApplication; import com.ar.artraceartpro.MyApplication;
import com.key.artraceartpro.data.local.dao.ImageDataDao; import com.ar.artraceartpro.data.local.dao.ImageDataDao;
import com.key.artraceartpro.data.local.entity.ImageData; import com.ar.artraceartpro.data.local.entity.ImageData;
@Database(entities = {ImageData.class}, version = MyApplication.Database_Version, exportSchema = false) @Database(entities = {ImageData.class}, version = MyApplication.Database_Version, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase { public abstract class AppDatabase extends RoomDatabase {
public abstract ImageDataDao imageDataDao(); public abstract ImageDataDao imageDataDao();
private static volatile AppDatabase INSTANCE; private static volatile AppDatabase INSTANCE;
public static AppDatabase getInstance(Context context) { public static AppDatabase getInstance(Context context) {

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro.data.local.entity; package com.ar.artraceartpro.data.local.entity;
import androidx.room.Entity; import androidx.room.Entity;
import androidx.room.PrimaryKey; import androidx.room.PrimaryKey;

View File

@ -1,13 +1,13 @@
package com.key.artraceartpro.data.repository; package com.ar.artraceartpro.data.repository;
import android.content.Context; import android.content.Context;
import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;
import androidx.lifecycle.MediatorLiveData; import androidx.lifecycle.MediatorLiveData;
import com.key.artraceartpro.data.local.dao.ImageDataDao; import com.ar.artraceartpro.data.local.dao.ImageDataDao;
import com.key.artraceartpro.data.local.database.AppDatabase; import com.ar.artraceartpro.data.local.database.AppDatabase;
import com.key.artraceartpro.data.local.entity.ImageData; import com.ar.artraceartpro.data.local.entity.ImageData;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;

View File

@ -1,26 +1,20 @@
package com.key.artraceartpro.ui.activity; package com.ar.artraceartpro.ui.activity;
import android.Manifest; import android.Manifest;
import android.content.ContentValues; import android.content.ContentValues;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.res.AssetManager;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix; import android.graphics.Matrix;
import android.graphics.Point;
import android.graphics.PointF; import android.graphics.PointF;
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.os.Environment; import android.os.Environment;
import android.provider.MediaStore; import android.provider.MediaStore;
import android.util.DisplayMetrics;
import android.util.Log; import android.util.Log;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.SeekBar; import android.widget.SeekBar;
import android.widget.Toast; import android.widget.Toast;
@ -42,13 +36,11 @@ import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat; import androidx.core.view.WindowInsetsCompat;
import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListenableFuture;
import com.key.artraceartpro.R; import com.ar.artraceartpro.R;
import com.key.artraceartpro.databinding.ActivityCameraBinding; import com.ar.artraceartpro.databinding.ActivityCameraBinding;
import com.key.artraceartpro.utils.PermissionUtils; import com.ar.artraceartpro.utils.PermissionUtils;
import com.key.artraceartpro.utils.TracingUtils; import com.ar.artraceartpro.utils.TracingUtils;
import java.io.IOException;
import java.io.InputStream;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
public class CameraActivity extends AppCompatActivity implements View.OnTouchListener, SeekBar.OnSeekBarChangeListener { public class CameraActivity extends AppCompatActivity implements View.OnTouchListener, SeekBar.OnSeekBarChangeListener {
@ -212,23 +204,6 @@ public class CameraActivity extends AppCompatActivity implements View.OnTouchLis
); );
} }
private String[] getRequiredPermissions() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
return new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_MEDIA_IMAGES};
} else {
return new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
}
}
private void toggleFlash() {
if (camera != null) {
CameraControl cameraControl = camera.getCameraControl();
isFlash = !isFlash;
cameraControl.enableTorch(isFlash);
binding.flash.setImageResource(isFlash ? R.drawable.flash : R.drawable.un_flash);
}
}
private void openImagePicker() { private void openImagePicker() {
String[] permissions = PermissionUtils.getStoragePermissions(); String[] permissions = PermissionUtils.getStoragePermissions();
if (ContextCompat.checkSelfPermission(this, permissions[0]) != PackageManager.PERMISSION_GRANTED) { if (ContextCompat.checkSelfPermission(this, permissions[0]) != PackageManager.PERMISSION_GRANTED) {
@ -324,6 +299,23 @@ public class CameraActivity extends AppCompatActivity implements View.OnTouchLis
return true; return true;
} }
private String[] getRequiredPermissions() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
return new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_MEDIA_IMAGES};
} else {
return new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
}
}
private void toggleFlash() {
if (camera != null) {
CameraControl cameraControl = camera.getCameraControl();
isFlash = !isFlash;
cameraControl.enableTorch(isFlash);
binding.flash.setImageResource(isFlash ? R.drawable.flash : R.drawable.un_flash);
}
}
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro.ui.activity; package com.ar.artraceartpro.ui.activity;
import android.os.Bundle; import android.os.Bundle;
@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import com.key.artraceartpro.R; import com.ar.artraceartpro.R;
import com.key.artraceartpro.data.local.entity.ImageData; import com.ar.artraceartpro.data.local.entity.ImageData;
import com.key.artraceartpro.databinding.ActivityCategoryBinding; import com.ar.artraceartpro.databinding.ActivityCategoryBinding;
import com.key.artraceartpro.ui.adapter.ImageRecyclerViewAdapter; import com.ar.artraceartpro.ui.adapter.ImageRecyclerViewAdapter;
import com.key.artraceartpro.utils.ItemDecoration; import com.ar.artraceartpro.utils.ItemDecoration;
import com.key.artraceartpro.viewmodel.ImageViewModel; import com.ar.artraceartpro.viewmodel.ImageViewModel;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro.ui.activity; package com.ar.artraceartpro.ui.activity;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
@ -12,10 +12,10 @@ import androidx.core.view.WindowInsetsCompat;
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 com.key.artraceartpro.R; import com.ar.artraceartpro.R;
import com.key.artraceartpro.databinding.ActivityMainBinding; import com.ar.artraceartpro.databinding.ActivityMainBinding;
import com.key.artraceartpro.databinding.TabCustomBinding; import com.ar.artraceartpro.databinding.TabCustomBinding;
import com.key.artraceartpro.ui.adapter.MainAViewPagerAdapter; import com.ar.artraceartpro.ui.adapter.MainAViewPagerAdapter;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {

View File

@ -1,11 +1,11 @@
package com.key.artraceartpro.ui.activity; package com.ar.artraceartpro.ui.activity;
import android.os.Bundle; import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import com.key.artraceartpro.databinding.ActivitySettingBinding; import com.ar.artraceartpro.databinding.ActivitySettingBinding;
import com.key.artraceartpro.utils.SettingUtils; import com.ar.artraceartpro.utils.SettingUtils;
public class SettingActivity extends AppCompatActivity { public class SettingActivity extends AppCompatActivity {

View File

@ -1,9 +1,8 @@
package com.key.artraceartpro.ui.activity; package com.ar.artraceartpro.ui.activity;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.CountDownTimer; import android.os.CountDownTimer;
import android.widget.ProgressBar;
import androidx.activity.EdgeToEdge; import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
@ -13,8 +12,8 @@ import androidx.core.view.WindowInsetsCompat;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners; import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.key.artraceartpro.R; import com.ar.artraceartpro.R;
import com.key.artraceartpro.databinding.ActivitySplashBinding; import com.ar.artraceartpro.databinding.ActivitySplashBinding;
public class SplashActivity extends AppCompatActivity { public class SplashActivity extends AppCompatActivity {

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro.ui.adapter; package com.ar.artraceartpro.ui.adapter;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
@ -14,11 +14,11 @@ import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners; import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.key.artraceartpro.R; import com.ar.artraceartpro.R;
import com.key.artraceartpro.data.local.database.AppDatabase; import com.ar.artraceartpro.data.local.database.AppDatabase;
import com.key.artraceartpro.data.local.entity.ImageData; import com.ar.artraceartpro.data.local.entity.ImageData;
import com.key.artraceartpro.ui.activity.CameraActivity; import com.ar.artraceartpro.ui.activity.CameraActivity;
import com.key.artraceartpro.ui.activity.CategoryActivity; import com.ar.artraceartpro.ui.activity.CategoryActivity;
import java.util.List; import java.util.List;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;

View File

@ -1,13 +1,13 @@
package com.key.artraceartpro.ui.adapter; package com.ar.artraceartpro.ui.adapter;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentActivity;
import androidx.viewpager2.adapter.FragmentStateAdapter; import androidx.viewpager2.adapter.FragmentStateAdapter;
import com.key.artraceartpro.ui.fragment.CategoryFragment; import com.ar.artraceartpro.ui.fragment.CategoryFragment;
import com.key.artraceartpro.ui.fragment.FavoriteFragment; import com.ar.artraceartpro.ui.fragment.FavoriteFragment;
import com.key.artraceartpro.ui.fragment.ImportFragment; import com.ar.artraceartpro.ui.fragment.ImportFragment;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro.ui.fragment; package com.ar.artraceartpro.ui.fragment;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -11,19 +11,16 @@ import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import com.key.artraceartpro.data.local.entity.ImageData; import com.ar.artraceartpro.data.local.entity.ImageData;
import com.key.artraceartpro.databinding.FragmentCategoryBinding; import com.ar.artraceartpro.databinding.FragmentCategoryBinding;
import com.key.artraceartpro.ui.adapter.ImageRecyclerViewAdapter; import com.ar.artraceartpro.ui.adapter.ImageRecyclerViewAdapter;
import com.key.artraceartpro.utils.Files; import com.ar.artraceartpro.utils.Files;
import com.key.artraceartpro.utils.ItemDecoration; import com.ar.artraceartpro.utils.ItemDecoration;
import com.key.artraceartpro.viewmodel.ImageViewModel; import com.ar.artraceartpro.viewmodel.ImageViewModel;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Random; import java.util.Random;
import java.util.concurrent.CopyOnWriteArrayList;
public class CategoryFragment extends Fragment { public class CategoryFragment extends Fragment {

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro.ui.fragment; package com.ar.artraceartpro.ui.fragment;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -10,11 +10,11 @@ import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import com.key.artraceartpro.data.local.entity.ImageData; import com.ar.artraceartpro.data.local.entity.ImageData;
import com.key.artraceartpro.databinding.FragmentFavoriteBinding; import com.ar.artraceartpro.databinding.FragmentFavoriteBinding;
import com.key.artraceartpro.ui.adapter.ImageRecyclerViewAdapter; import com.ar.artraceartpro.ui.adapter.ImageRecyclerViewAdapter;
import com.key.artraceartpro.utils.ItemDecoration; import com.ar.artraceartpro.utils.ItemDecoration;
import com.key.artraceartpro.viewmodel.ImageViewModel; import com.ar.artraceartpro.viewmodel.ImageViewModel;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro.ui.fragment; package com.ar.artraceartpro.ui.fragment;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
@ -14,12 +14,12 @@ import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import com.key.artraceartpro.data.local.entity.ImageData; import com.ar.artraceartpro.data.local.entity.ImageData;
import com.key.artraceartpro.databinding.FragmentImportBinding; import com.ar.artraceartpro.databinding.FragmentImportBinding;
import com.key.artraceartpro.ui.adapter.ImageRecyclerViewAdapter; import com.ar.artraceartpro.ui.adapter.ImageRecyclerViewAdapter;
import com.key.artraceartpro.utils.ImportUtils; import com.ar.artraceartpro.utils.ImportUtils;
import com.key.artraceartpro.utils.ItemDecoration; import com.ar.artraceartpro.utils.ItemDecoration;
import com.key.artraceartpro.viewmodel.ImageViewModel; import com.ar.artraceartpro.viewmodel.ImageViewModel;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -1,6 +1,6 @@
package com.key.artraceartpro.utils; package com.ar.artraceartpro.utils;
import com.key.artraceartpro.MyApplication; import com.ar.artraceartpro.MyApplication;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro.utils; package com.ar.artraceartpro.utils;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
@ -7,8 +7,8 @@ import android.graphics.BitmapFactory;
import android.net.Uri; import android.net.Uri;
import android.widget.Toast; import android.widget.Toast;
import com.key.artraceartpro.data.local.entity.ImageData; import com.ar.artraceartpro.data.local.entity.ImageData;
import com.key.artraceartpro.viewmodel.ImageViewModel; import com.ar.artraceartpro.viewmodel.ImageViewModel;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro.utils; package com.ar.artraceartpro.utils;
import android.graphics.Rect; import android.graphics.Rect;
import android.view.View; import android.view.View;
@ -9,7 +9,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.StaggeredGridLayoutManager; import androidx.recyclerview.widget.StaggeredGridLayoutManager;
import com.key.artraceartpro.MyApplication; import com.ar.artraceartpro.MyApplication;
public class ItemDecoration extends RecyclerView.ItemDecoration { public class ItemDecoration extends RecyclerView.ItemDecoration {

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro.utils; package com.ar.artraceartpro.utils;
import android.Manifest; import android.Manifest;
import android.app.Activity; import android.app.Activity;

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro.utils; package com.ar.artraceartpro.utils;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro.utils; package com.ar.artraceartpro.utils;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;

View File

@ -1,12 +1,12 @@
package com.key.artraceartpro.viewmodel; package com.ar.artraceartpro.viewmodel;
import android.app.Application; import android.app.Application;
import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.AndroidViewModel;
import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;
import com.key.artraceartpro.data.local.entity.ImageData; import com.ar.artraceartpro.data.local.entity.ImageData;
import com.key.artraceartpro.data.repository.ImageRepository; import com.ar.artraceartpro.data.repository.ImageRepository;
import java.util.List; import java.util.List;

View File

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

View File

@ -20,7 +20,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/there_s_absolutely_nothing_here" android:text="@string/there_s_absolutely_nothing_here"
android:textColor="@color/gray" android:textColor="@color/gray"
android:textSize="16sp" android:textSize="18sp"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

View File

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

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 982 B

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 51 KiB

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro; package com.ar.artraceartpro;
import org.junit.Test; import org.junit.Test;

6
keystore.properties Normal file
View File

@ -0,0 +1,6 @@
app_name=AR TraceArt Pro
package_name=com.ar.artraceartpro
keystoreFile=app/ARTraceArtPro.jks
key_alias=ARTraceArtProkey0
key_store_password=ARTraceArtPro
key_password=ARTraceArtPro