From 98f157061b09843ef7140165caf70929b7d974e0 Mon Sep 17 00:00:00 2001 From: Mansi Bhayade Date: Thu, 22 Aug 2024 10:37:04 +0530 Subject: [PATCH 1/2] Added Freeze option to freeze icon packs with implementation of freeze database --- app/src/main/java/dev/ukanth/iconmgr/App.java | 9 ++++ .../java/dev/ukanth/iconmgr/IconAdapter.java | 26 ++++++++++ .../java/dev/ukanth/iconmgr/MainActivity.java | 2 +- .../java/dev/ukanth/iconmgr/dao/Freeze.java | 47 +++++++++++++++++++ .../dev/ukanth/iconmgr/dao/FreezeDao.java | 16 +++++++ .../ukanth/iconmgr/dao/FreezeDatabase.java | 27 +++++++++++ .../java/dev/ukanth/iconmgr/dao/IPObjDao.java | 3 ++ app/src/main/res/values/arrays.xml | 1 + app/src/main/res/values/strings.xml | 2 + 9 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/dev/ukanth/iconmgr/dao/Freeze.java create mode 100644 app/src/main/java/dev/ukanth/iconmgr/dao/FreezeDao.java create mode 100644 app/src/main/java/dev/ukanth/iconmgr/dao/FreezeDatabase.java diff --git a/app/src/main/java/dev/ukanth/iconmgr/App.java b/app/src/main/java/dev/ukanth/iconmgr/App.java index 75feae8..e2c5afa 100644 --- a/app/src/main/java/dev/ukanth/iconmgr/App.java +++ b/app/src/main/java/dev/ukanth/iconmgr/App.java @@ -8,6 +8,8 @@ import dev.ukanth.iconmgr.dao.FavDao; import dev.ukanth.iconmgr.dao.FavDatabase; +import dev.ukanth.iconmgr.dao.FreezeDao; +import dev.ukanth.iconmgr.dao.FreezeDatabase; import dev.ukanth.iconmgr.dao.HistoryDao; import dev.ukanth.iconmgr.dao.HistoryDatabase; import dev.ukanth.iconmgr.dao.IPObjDao; @@ -26,6 +28,8 @@ public class App extends Application { private HistoryDao historyDao; private FavDao favDao; + + private FreezeDao freezeDao; private BroadcastReceiver receiver; @@ -56,6 +60,9 @@ public void onCreate() { FavDatabase db3 = FavDatabase.getInstance(getApplicationContext()); favDao = db3.favDao(); + + FreezeDatabase db4 = FreezeDatabase.getInstance(getApplicationContext()); + freezeDao = db4.freezeDao(); } public IPObjDao getIPObjDao() { @@ -68,4 +75,6 @@ public HistoryDao getHistoryDao() { public FavDao getFavDao(){return favDao; } + public FreezeDao getFreezeDao(){return freezeDao; } + } \ No newline at end of file diff --git a/app/src/main/java/dev/ukanth/iconmgr/IconAdapter.java b/app/src/main/java/dev/ukanth/iconmgr/IconAdapter.java index d4b7ea6..f852f05 100644 --- a/app/src/main/java/dev/ukanth/iconmgr/IconAdapter.java +++ b/app/src/main/java/dev/ukanth/iconmgr/IconAdapter.java @@ -18,6 +18,7 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; +import android.widget.Toast; import androidx.cardview.widget.CardView; import androidx.core.content.ContextCompat; @@ -30,6 +31,8 @@ import java.util.Date; import java.util.List; +import dev.ukanth.iconmgr.dao.Freeze; +import dev.ukanth.iconmgr.dao.FreezeDao; import dev.ukanth.iconmgr.dao.IPObj; import dev.ukanth.iconmgr.dao.IPObjDao; import dev.ukanth.iconmgr.dao.IPObjDatabase; @@ -133,6 +136,8 @@ private void performAction(int which, IPObj currentItem) { case 5: uninstall(ctx, currentItem); break; + case 6: + freeze(ctx, currentItem); } } @@ -174,6 +179,27 @@ private void uninstall(Context ctx, IPObj currentItem) { } } + private void freeze(Context ctx, IPObj currentItem){ +// Toast.makeText(ctx,"freeze icon pack" + currentItem ,Toast.LENGTH_SHORT).show(); + FreezeDao freezeDao = App.getInstance().getFreezeDao(); + IPObjDao ipObjDao = App.getInstance().getIPObjDao(); + ipObjDao.deletecurrent(currentItem); + + // Remove the item from the list used by the adapter + iconPacks.remove(currentItem); + + // Notify the adapter that the item has been removed + notifyItemRemoved(iconPacks.indexOf(currentItem)); + notifyItemRangeChanged(iconPacks.indexOf(currentItem), iconPacks.size()); + // Create a new Freeze object from the current IPObj item + Freeze freezeItem = new Freeze(currentItem.getIconPkg(), currentItem.getIconName()); + + // Insert the item into the Freeze table + freezeDao.insertIntoFreezeTable(freezeItem); + + + } + private void openPlay(Context ctx, IPObj currentItem) { try { ctx.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + currentItem.getIconPkg()))); diff --git a/app/src/main/java/dev/ukanth/iconmgr/MainActivity.java b/app/src/main/java/dev/ukanth/iconmgr/MainActivity.java index 0239064..5016f52 100644 --- a/app/src/main/java/dev/ukanth/iconmgr/MainActivity.java +++ b/app/src/main/java/dev/ukanth/iconmgr/MainActivity.java @@ -51,7 +51,7 @@ public class MainActivity extends AppCompatActivity implements SearchView.OnQuer private RecyclerView recyclerView; private TextView emptyView; private IconAdapter adapter; - private IPObjDao ipObjDao = App.getInstance().getIPObjDao();; + private IPObjDao ipObjDao = App.getInstance().getIPObjDao(); private List iconPacksList; private SwipeRefreshLayout mSwipeLayout; private MaterialDialog plsWait; diff --git a/app/src/main/java/dev/ukanth/iconmgr/dao/Freeze.java b/app/src/main/java/dev/ukanth/iconmgr/dao/Freeze.java new file mode 100644 index 0000000..e058018 --- /dev/null +++ b/app/src/main/java/dev/ukanth/iconmgr/dao/Freeze.java @@ -0,0 +1,47 @@ +package dev.ukanth.iconmgr.dao; + +import androidx.annotation.NonNull; +import androidx.room.ColumnInfo; +import androidx.room.Entity; +import androidx.room.PrimaryKey; + +@Entity +public class Freeze { + + @PrimaryKey + @NonNull + private String iconPkg; + + @ColumnInfo(name = "iconName") + private String iconName; + + public Freeze(String iconPkg, @NonNull String iconName) { + this.iconPkg = iconPkg; + this.iconName = iconName; + } + + public Freeze() { + } + + + + @NonNull + public String getIconPkg() { + return iconPkg; + } + + @NonNull + public void setIconPkg(String iconPkg) { + this.iconPkg = iconPkg; + } + + public String getIconName() { + return iconName; + } + + public void setIconName(String iconName) { + this.iconName = iconName; + } + + +} diff --git a/app/src/main/java/dev/ukanth/iconmgr/dao/FreezeDao.java b/app/src/main/java/dev/ukanth/iconmgr/dao/FreezeDao.java new file mode 100644 index 0000000..2fd417f --- /dev/null +++ b/app/src/main/java/dev/ukanth/iconmgr/dao/FreezeDao.java @@ -0,0 +1,16 @@ +package dev.ukanth.iconmgr.dao; + +import androidx.room.Dao; +import androidx.room.Insert; + +@Dao +public interface FreezeDao { + + @Insert + void insertIntoFreezeTable(Freeze freeze); + + + + + +} diff --git a/app/src/main/java/dev/ukanth/iconmgr/dao/FreezeDatabase.java b/app/src/main/java/dev/ukanth/iconmgr/dao/FreezeDatabase.java new file mode 100644 index 0000000..c42c490 --- /dev/null +++ b/app/src/main/java/dev/ukanth/iconmgr/dao/FreezeDatabase.java @@ -0,0 +1,27 @@ +package dev.ukanth.iconmgr.dao; + +import android.content.Context; + +import androidx.room.Database; +import androidx.room.Room; +import androidx.room.RoomDatabase; + +@Database(entities = {Freeze.class }, version = 1, exportSchema = false) +public abstract class FreezeDatabase extends RoomDatabase { + private static FreezeDatabase instance; + + public abstract FreezeDao freezeDao(); + + public static FreezeDatabase getInstance(Context context) { + if (instance == null) { + instance = Room.databaseBuilder(context.getApplicationContext(), FreezeDatabase.class, "Freeze-db") + .allowMainThreadQueries() + .build(); + } + return instance; + } + + + + +} diff --git a/app/src/main/java/dev/ukanth/iconmgr/dao/IPObjDao.java b/app/src/main/java/dev/ukanth/iconmgr/dao/IPObjDao.java index a8ad8e5..020cb41 100644 --- a/app/src/main/java/dev/ukanth/iconmgr/dao/IPObjDao.java +++ b/app/src/main/java/dev/ukanth/iconmgr/dao/IPObjDao.java @@ -34,6 +34,9 @@ public interface IPObjDao { @Delete void delete(IPObj user); + @Delete + void deletecurrent(IPObj ipObj); + @Query("DELETE FROM IPObj") void deleteAll(); diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index d528323..903901d 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -7,6 +7,7 @@ Open in Playstore Launch Uninstall + Freeze diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 455f3cc..ed792ab 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -106,6 +106,8 @@ Searching Select Launcher to apply iconpack Apply + Freeze Icon Pack + Defreeze Icon Pack Open Enable Launcher prompt From 467e77912891aa19f666391d063f4672cba2e71c Mon Sep 17 00:00:00 2001 From: Suryakant Bhayade Date: Mon, 25 Nov 2024 13:20:20 +0530 Subject: [PATCH 2/2] Deleted freeze database --- app/src/main/java/dev/ukanth/iconmgr/App.java | 9 +--- .../java/dev/ukanth/iconmgr/IconAdapter.java | 27 +---------- .../java/dev/ukanth/iconmgr/dao/Freeze.java | 47 ------------------- .../dev/ukanth/iconmgr/dao/FreezeDao.java | 16 ------- .../ukanth/iconmgr/dao/FreezeDatabase.java | 27 ----------- 5 files changed, 4 insertions(+), 122 deletions(-) delete mode 100644 app/src/main/java/dev/ukanth/iconmgr/dao/Freeze.java delete mode 100644 app/src/main/java/dev/ukanth/iconmgr/dao/FreezeDao.java delete mode 100644 app/src/main/java/dev/ukanth/iconmgr/dao/FreezeDatabase.java diff --git a/app/src/main/java/dev/ukanth/iconmgr/App.java b/app/src/main/java/dev/ukanth/iconmgr/App.java index e2c5afa..7908eec 100644 --- a/app/src/main/java/dev/ukanth/iconmgr/App.java +++ b/app/src/main/java/dev/ukanth/iconmgr/App.java @@ -8,8 +8,6 @@ import dev.ukanth.iconmgr.dao.FavDao; import dev.ukanth.iconmgr.dao.FavDatabase; -import dev.ukanth.iconmgr.dao.FreezeDao; -import dev.ukanth.iconmgr.dao.FreezeDatabase; import dev.ukanth.iconmgr.dao.HistoryDao; import dev.ukanth.iconmgr.dao.HistoryDatabase; import dev.ukanth.iconmgr.dao.IPObjDao; @@ -29,7 +27,7 @@ public class App extends Application { private FavDao favDao; - private FreezeDao freezeDao; + private BroadcastReceiver receiver; @@ -61,8 +59,7 @@ public void onCreate() { FavDatabase db3 = FavDatabase.getInstance(getApplicationContext()); favDao = db3.favDao(); - FreezeDatabase db4 = FreezeDatabase.getInstance(getApplicationContext()); - freezeDao = db4.freezeDao(); + } public IPObjDao getIPObjDao() { @@ -75,6 +72,4 @@ public HistoryDao getHistoryDao() { public FavDao getFavDao(){return favDao; } - public FreezeDao getFreezeDao(){return freezeDao; } - } \ No newline at end of file diff --git a/app/src/main/java/dev/ukanth/iconmgr/IconAdapter.java b/app/src/main/java/dev/ukanth/iconmgr/IconAdapter.java index f852f05..0e9adf9 100644 --- a/app/src/main/java/dev/ukanth/iconmgr/IconAdapter.java +++ b/app/src/main/java/dev/ukanth/iconmgr/IconAdapter.java @@ -31,8 +31,7 @@ import java.util.Date; import java.util.List; -import dev.ukanth.iconmgr.dao.Freeze; -import dev.ukanth.iconmgr.dao.FreezeDao; + import dev.ukanth.iconmgr.dao.IPObj; import dev.ukanth.iconmgr.dao.IPObjDao; import dev.ukanth.iconmgr.dao.IPObjDatabase; @@ -136,8 +135,7 @@ private void performAction(int which, IPObj currentItem) { case 5: uninstall(ctx, currentItem); break; - case 6: - freeze(ctx, currentItem); + } } @@ -179,27 +177,6 @@ private void uninstall(Context ctx, IPObj currentItem) { } } - private void freeze(Context ctx, IPObj currentItem){ -// Toast.makeText(ctx,"freeze icon pack" + currentItem ,Toast.LENGTH_SHORT).show(); - FreezeDao freezeDao = App.getInstance().getFreezeDao(); - IPObjDao ipObjDao = App.getInstance().getIPObjDao(); - ipObjDao.deletecurrent(currentItem); - - // Remove the item from the list used by the adapter - iconPacks.remove(currentItem); - - // Notify the adapter that the item has been removed - notifyItemRemoved(iconPacks.indexOf(currentItem)); - notifyItemRangeChanged(iconPacks.indexOf(currentItem), iconPacks.size()); - // Create a new Freeze object from the current IPObj item - Freeze freezeItem = new Freeze(currentItem.getIconPkg(), currentItem.getIconName()); - - // Insert the item into the Freeze table - freezeDao.insertIntoFreezeTable(freezeItem); - - - } - private void openPlay(Context ctx, IPObj currentItem) { try { ctx.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + currentItem.getIconPkg()))); diff --git a/app/src/main/java/dev/ukanth/iconmgr/dao/Freeze.java b/app/src/main/java/dev/ukanth/iconmgr/dao/Freeze.java deleted file mode 100644 index e058018..0000000 --- a/app/src/main/java/dev/ukanth/iconmgr/dao/Freeze.java +++ /dev/null @@ -1,47 +0,0 @@ -package dev.ukanth.iconmgr.dao; - -import androidx.annotation.NonNull; -import androidx.room.ColumnInfo; -import androidx.room.Entity; -import androidx.room.PrimaryKey; - -@Entity -public class Freeze { - - @PrimaryKey - @NonNull - private String iconPkg; - - @ColumnInfo(name = "iconName") - private String iconName; - - public Freeze(String iconPkg, @NonNull String iconName) { - this.iconPkg = iconPkg; - this.iconName = iconName; - } - - public Freeze() { - } - - - - @NonNull - public String getIconPkg() { - return iconPkg; - } - - @NonNull - public void setIconPkg(String iconPkg) { - this.iconPkg = iconPkg; - } - - public String getIconName() { - return iconName; - } - - public void setIconName(String iconName) { - this.iconName = iconName; - } - - -} diff --git a/app/src/main/java/dev/ukanth/iconmgr/dao/FreezeDao.java b/app/src/main/java/dev/ukanth/iconmgr/dao/FreezeDao.java deleted file mode 100644 index 2fd417f..0000000 --- a/app/src/main/java/dev/ukanth/iconmgr/dao/FreezeDao.java +++ /dev/null @@ -1,16 +0,0 @@ -package dev.ukanth.iconmgr.dao; - -import androidx.room.Dao; -import androidx.room.Insert; - -@Dao -public interface FreezeDao { - - @Insert - void insertIntoFreezeTable(Freeze freeze); - - - - - -} diff --git a/app/src/main/java/dev/ukanth/iconmgr/dao/FreezeDatabase.java b/app/src/main/java/dev/ukanth/iconmgr/dao/FreezeDatabase.java deleted file mode 100644 index c42c490..0000000 --- a/app/src/main/java/dev/ukanth/iconmgr/dao/FreezeDatabase.java +++ /dev/null @@ -1,27 +0,0 @@ -package dev.ukanth.iconmgr.dao; - -import android.content.Context; - -import androidx.room.Database; -import androidx.room.Room; -import androidx.room.RoomDatabase; - -@Database(entities = {Freeze.class }, version = 1, exportSchema = false) -public abstract class FreezeDatabase extends RoomDatabase { - private static FreezeDatabase instance; - - public abstract FreezeDao freezeDao(); - - public static FreezeDatabase getInstance(Context context) { - if (instance == null) { - instance = Room.databaseBuilder(context.getApplicationContext(), FreezeDatabase.class, "Freeze-db") - .allowMainThreadQueries() - .build(); - } - return instance; - } - - - - -}