完成版
BIN
app/ARTraceArtPro.jks
Normal 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
|
||||
|
||||
14
app/proguard-rules.pro
vendored
@ -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 { *; }
|
||||
@ -1,4 +1,4 @@
|
||||
package com.key.artraceartpro;
|
||||
package com.ar.artraceartpro;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
BIN
app/src/main/ic_launcher-playstore.png
Normal file
|
After Width: | Height: | Size: 793 KiB |
@ -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;
|
||||
@ -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;
|
||||
|
||||
@ -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) {
|
||||
@ -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;
|
||||
@ -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;
|
||||
@ -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();
|
||||
@ -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;
|
||||
@ -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 {
|
||||
|
||||
@ -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 {
|
||||
@ -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 {
|
||||
@ -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;
|
||||
@ -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;
|
||||
@ -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 {
|
||||
@ -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;
|
||||
@ -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;
|
||||
@ -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;
|
||||
@ -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;
|
||||
@ -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 {
|
||||
@ -1,4 +1,4 @@
|
||||
package com.key.artraceartpro.utils;
|
||||
package com.ar.artraceartpro.utils;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.key.artraceartpro.utils;
|
||||
package com.ar.artraceartpro.utils;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.key.artraceartpro.utils;
|
||||
package com.ar.artraceartpro.utils;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
@ -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;
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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>
|
||||
@ -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>
|
||||
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 7.9 KiB |
BIN
app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp
Normal file
|
After Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 982 B After Width: | Height: | Size: 4.3 KiB |
BIN
app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp
Normal file
|
After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 13 KiB |
BIN
app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp
Normal file
|
After Width: | Height: | Size: 79 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 26 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp
Normal file
|
After Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 44 KiB |
BIN
app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp
Normal file
|
After Width: | Height: | Size: 279 KiB |
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 51 KiB |
@ -1,4 +1,4 @@
|
||||
package com.key.artraceartpro;
|
||||
package com.ar.artraceartpro;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
6
keystore.properties
Normal 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
|
||||