完成版

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())
android {
namespace = "com.key.artraceartpro"
namespace = "com.ar.artraceartpro"
compileSdk = 34
defaultConfig {
applicationId = "com.key.artraceartpro"
applicationId = "com.ar.artraceartpro"
minSdk = 23
targetSdk = 34
versionCode = 1

View File

@ -18,4 +18,16 @@
# If you keep the line number information, uncomment this to
# 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;

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.content.Context;
import android.content.SharedPreferences;
import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
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 com.ar.artraceartpro.data.local.entity.ImageData;
import com.ar.artraceartpro.data.repository.ImageRepository;
import com.ar.artraceartpro.utils.Files;
import java.util.ArrayList;
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.room.Dao;
@ -6,7 +6,7 @@ import androidx.room.Insert;
import androidx.room.Query;
import androidx.room.Update;
import com.key.artraceartpro.data.local.entity.ImageData;
import com.ar.artraceartpro.data.local.entity.ImageData;
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;
@ -6,14 +6,15 @@ import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;
import com.key.artraceartpro.MyApplication;
import com.key.artraceartpro.data.local.dao.ImageDataDao;
import com.key.artraceartpro.data.local.entity.ImageData;
import com.ar.artraceartpro.MyApplication;
import com.ar.artraceartpro.data.local.dao.ImageDataDao;
import com.ar.artraceartpro.data.local.entity.ImageData;
@Database(entities = {ImageData.class}, version = MyApplication.Database_Version, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {
public abstract ImageDataDao imageDataDao();
private static volatile AppDatabase INSTANCE;
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.PrimaryKey;

View File

@ -1,13 +1,13 @@
package com.key.artraceartpro.data.repository;
package com.ar.artraceartpro.data.repository;
import android.content.Context;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MediatorLiveData;
import com.key.artraceartpro.data.local.dao.ImageDataDao;
import com.key.artraceartpro.data.local.database.AppDatabase;
import com.key.artraceartpro.data.local.entity.ImageData;
import com.ar.artraceartpro.data.local.dao.ImageDataDao;
import com.ar.artraceartpro.data.local.database.AppDatabase;
import com.ar.artraceartpro.data.local.entity.ImageData;
import java.util.ArrayList;
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.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.graphics.Point;
import android.graphics.PointF;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.Toast;
@ -42,13 +36,11 @@ import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import com.google.common.util.concurrent.ListenableFuture;
import com.key.artraceartpro.R;
import com.key.artraceartpro.databinding.ActivityCameraBinding;
import com.key.artraceartpro.utils.PermissionUtils;
import com.key.artraceartpro.utils.TracingUtils;
import com.ar.artraceartpro.R;
import com.ar.artraceartpro.databinding.ActivityCameraBinding;
import com.ar.artraceartpro.utils.PermissionUtils;
import com.ar.artraceartpro.utils.TracingUtils;
import java.io.IOException;
import java.io.InputStream;
import java.util.concurrent.ExecutionException;
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() {
String[] permissions = PermissionUtils.getStoragePermissions();
if (ContextCompat.checkSelfPermission(this, permissions[0]) != PackageManager.PERMISSION_GRANTED) {
@ -324,6 +299,23 @@ public class CameraActivity extends AppCompatActivity implements View.OnTouchLis
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
protected void 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;
@ -12,12 +12,12 @@ import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.GridLayoutManager;
import com.key.artraceartpro.R;
import com.key.artraceartpro.data.local.entity.ImageData;
import com.key.artraceartpro.databinding.ActivityCategoryBinding;
import com.key.artraceartpro.ui.adapter.ImageRecyclerViewAdapter;
import com.key.artraceartpro.utils.ItemDecoration;
import com.key.artraceartpro.viewmodel.ImageViewModel;
import com.ar.artraceartpro.R;
import com.ar.artraceartpro.data.local.entity.ImageData;
import com.ar.artraceartpro.databinding.ActivityCategoryBinding;
import com.ar.artraceartpro.ui.adapter.ImageRecyclerViewAdapter;
import com.ar.artraceartpro.utils.ItemDecoration;
import com.ar.artraceartpro.viewmodel.ImageViewModel;
import java.util.ArrayList;
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.os.Bundle;
@ -12,10 +12,10 @@ import androidx.core.view.WindowInsetsCompat;
import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator;
import com.key.artraceartpro.R;
import com.key.artraceartpro.databinding.ActivityMainBinding;
import com.key.artraceartpro.databinding.TabCustomBinding;
import com.key.artraceartpro.ui.adapter.MainAViewPagerAdapter;
import com.ar.artraceartpro.R;
import com.ar.artraceartpro.databinding.ActivityMainBinding;
import com.ar.artraceartpro.databinding.TabCustomBinding;
import com.ar.artraceartpro.ui.adapter.MainAViewPagerAdapter;
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 androidx.appcompat.app.AppCompatActivity;
import com.key.artraceartpro.databinding.ActivitySettingBinding;
import com.key.artraceartpro.utils.SettingUtils;
import com.ar.artraceartpro.databinding.ActivitySettingBinding;
import com.ar.artraceartpro.utils.SettingUtils;
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.os.Bundle;
import android.os.CountDownTimer;
import android.widget.ProgressBar;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
@ -13,8 +12,8 @@ import androidx.core.view.WindowInsetsCompat;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.key.artraceartpro.R;
import com.key.artraceartpro.databinding.ActivitySplashBinding;
import com.ar.artraceartpro.R;
import com.ar.artraceartpro.databinding.ActivitySplashBinding;
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.content.Context;
@ -14,11 +14,11 @@ import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.key.artraceartpro.R;
import com.key.artraceartpro.data.local.database.AppDatabase;
import com.key.artraceartpro.data.local.entity.ImageData;
import com.key.artraceartpro.ui.activity.CameraActivity;
import com.key.artraceartpro.ui.activity.CategoryActivity;
import com.ar.artraceartpro.R;
import com.ar.artraceartpro.data.local.database.AppDatabase;
import com.ar.artraceartpro.data.local.entity.ImageData;
import com.ar.artraceartpro.ui.activity.CameraActivity;
import com.ar.artraceartpro.ui.activity.CategoryActivity;
import java.util.List;
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.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import com.key.artraceartpro.ui.fragment.CategoryFragment;
import com.key.artraceartpro.ui.fragment.FavoriteFragment;
import com.key.artraceartpro.ui.fragment.ImportFragment;
import com.ar.artraceartpro.ui.fragment.CategoryFragment;
import com.ar.artraceartpro.ui.fragment.FavoriteFragment;
import com.ar.artraceartpro.ui.fragment.ImportFragment;
import java.util.ArrayList;
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.view.LayoutInflater;
@ -11,19 +11,16 @@ import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.GridLayoutManager;
import com.key.artraceartpro.data.local.entity.ImageData;
import com.key.artraceartpro.databinding.FragmentCategoryBinding;
import com.key.artraceartpro.ui.adapter.ImageRecyclerViewAdapter;
import com.key.artraceartpro.utils.Files;
import com.key.artraceartpro.utils.ItemDecoration;
import com.key.artraceartpro.viewmodel.ImageViewModel;
import com.ar.artraceartpro.data.local.entity.ImageData;
import com.ar.artraceartpro.databinding.FragmentCategoryBinding;
import com.ar.artraceartpro.ui.adapter.ImageRecyclerViewAdapter;
import com.ar.artraceartpro.utils.Files;
import com.ar.artraceartpro.utils.ItemDecoration;
import com.ar.artraceartpro.viewmodel.ImageViewModel;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.concurrent.CopyOnWriteArrayList;
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.view.LayoutInflater;
@ -10,11 +10,11 @@ import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.GridLayoutManager;
import com.key.artraceartpro.data.local.entity.ImageData;
import com.key.artraceartpro.databinding.FragmentFavoriteBinding;
import com.key.artraceartpro.ui.adapter.ImageRecyclerViewAdapter;
import com.key.artraceartpro.utils.ItemDecoration;
import com.key.artraceartpro.viewmodel.ImageViewModel;
import com.ar.artraceartpro.data.local.entity.ImageData;
import com.ar.artraceartpro.databinding.FragmentFavoriteBinding;
import com.ar.artraceartpro.ui.adapter.ImageRecyclerViewAdapter;
import com.ar.artraceartpro.utils.ItemDecoration;
import com.ar.artraceartpro.viewmodel.ImageViewModel;
import java.util.ArrayList;
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.content.Intent;
@ -14,12 +14,12 @@ import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.GridLayoutManager;
import com.key.artraceartpro.data.local.entity.ImageData;
import com.key.artraceartpro.databinding.FragmentImportBinding;
import com.key.artraceartpro.ui.adapter.ImageRecyclerViewAdapter;
import com.key.artraceartpro.utils.ImportUtils;
import com.key.artraceartpro.utils.ItemDecoration;
import com.key.artraceartpro.viewmodel.ImageViewModel;
import com.ar.artraceartpro.data.local.entity.ImageData;
import com.ar.artraceartpro.databinding.FragmentImportBinding;
import com.ar.artraceartpro.ui.adapter.ImageRecyclerViewAdapter;
import com.ar.artraceartpro.utils.ImportUtils;
import com.ar.artraceartpro.utils.ItemDecoration;
import com.ar.artraceartpro.viewmodel.ImageViewModel;
import java.io.IOException;
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.util.ArrayList;

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro.utils;
package com.ar.artraceartpro.utils;
import android.app.Activity;
import android.content.Context;
@ -7,8 +7,8 @@ import android.graphics.BitmapFactory;
import android.net.Uri;
import android.widget.Toast;
import com.key.artraceartpro.data.local.entity.ImageData;
import com.key.artraceartpro.viewmodel.ImageViewModel;
import com.ar.artraceartpro.data.local.entity.ImageData;
import com.ar.artraceartpro.viewmodel.ImageViewModel;
import java.io.File;
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.view.View;
@ -9,7 +9,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.StaggeredGridLayoutManager;
import com.key.artraceartpro.MyApplication;
import com.ar.artraceartpro.MyApplication;
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.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.Intent;

View File

@ -1,4 +1,4 @@
package com.key.artraceartpro.utils;
package com.ar.artraceartpro.utils;
import android.app.Activity;
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 androidx.lifecycle.AndroidViewModel;
import androidx.lifecycle.LiveData;
import com.key.artraceartpro.data.local.entity.ImageData;
import com.key.artraceartpro.data.repository.ImageRepository;
import com.ar.artraceartpro.data.local.entity.ImageData;
import com.ar.artraceartpro.data.repository.ImageRepository;
import java.util.List;

View File

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

View File

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

View File

@ -1,6 +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" />
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
<background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>

View File

@ -1,6 +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" />
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
<background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</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;

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