OmniControl: move OmniStore into top-level grid

Change-Id: I51b604af6abc087d94de754dbc55fbce4d9acab6
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 526b4c2..a2d7c21 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -13,7 +13,6 @@
             <option value="$PROJECT_DIR$/app" />
           </set>
         </option>
-        <option name="resolveModulePerSourceSet" value="false" />
       </GradleProjectSettings>
     </option>
   </component>
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 753add3..95858db 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -36,6 +36,7 @@
         <entry key="app/src/main/res/drawable/ic_settings_more.xml" value="0.30885416666666665" />
         <entry key="app/src/main/res/drawable/ic_settings_omnigears.xml" value="0.3098958333333333" />
         <entry key="app/src/main/res/drawable/ic_settings_overlays.xml" value="0.3078125" />
+        <entry key="app/src/main/res/drawable/ic_store.xml" value="0.3235" />
         <entry key="app/src/main/res/drawable/ic_system_update.xml" value="0.2786458333333333" />
         <entry key="app/src/main/res/drawable/ic_wallpaper.xml" value="0.3098958333333333" />
         <entry key="app/src/main/res/drawable/ic_weather.xml" value="0.5051282051282051" />
diff --git a/app/src/main/java/org/omnirom/control/AppListFragment.kt b/app/src/main/java/org/omnirom/control/AppListFragment.kt
index 76b4e57..57918ed 100644
--- a/app/src/main/java/org/omnirom/control/AppListFragment.kt
+++ b/app/src/main/java/org/omnirom/control/AppListFragment.kt
@@ -82,12 +82,12 @@
             resources.getString(R.string.omni_remote_summary)
         )*/
 
-        appManager.addApp(
+        /*appManager.addApp(
             "org.omnirom.omnistore",
             "org.omnirom.omnistore.MainActivity",
             resources.getString(R.string.omnistore_title),
             resources.getString(R.string.omnistore_summary)
-        )
+        )*/
 
         createAppList()
     }
diff --git a/app/src/main/java/org/omnirom/control/GridViewFragment.kt b/app/src/main/java/org/omnirom/control/GridViewFragment.kt
index 7e8485f..5ea0eb6 100644
--- a/app/src/main/java/org/omnirom/control/GridViewFragment.kt
+++ b/app/src/main/java/org/omnirom/control/GridViewFragment.kt
@@ -33,6 +33,7 @@
 class GridViewFragment() : Fragment() {
     private lateinit var gridView: GridView
     private val gridItems: ArrayList<GridItem> = ArrayList()
+    private lateinit var gridItemsAdapter: GridViewAdapter
 
     abstract class GridItem(title: Int, summary: Int, icon: Int) {
         val gridTitle: Int = title
@@ -74,9 +75,8 @@
         }
     }
 
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-
+    fun createGridItems() {
+        gridItems.clear()
         gridItems.add(
             FragmentGridItem(
                 R.string.applist_settings_title,
@@ -235,6 +235,36 @@
                     )
             )
         }
+        if (Utils.isAvailableApp(requireContext(), "org.omnirom.omnistore")) {
+            val intent = Intent()
+            intent.component = ComponentName(
+                "org.omnirom.omnistore",
+                "org.omnirom.omnistore.MainActivity"
+            )
+            gridItems.add(
+                IntentGridItem(
+                    R.string.omnistore_title,
+                    R.string.omnistore_summary,
+                    R.drawable.ic_store,
+                    intent
+                )
+            )
+        }
+        if (Utils.isAvailableApp(requireContext(), "org.omnirom.omnistoreinstaller") && !Utils.isAvailableApp(requireContext(), "org.omnirom.omnistore")) {
+            val intent = Intent()
+            intent.component = ComponentName(
+                "org.omnirom.omnistoreinstaller",
+                "org.omnirom.omnistoreinstaller.MainActivity"
+            )
+            gridItems.add(
+                IntentGridItem(
+                    R.string.omnistore_title,
+                    R.string.omnistore_summary,
+                    R.drawable.ic_store,
+                    intent
+                )
+            )
+        }
         gridItems.add(
             FragmentGridItem(
                 R.string.more_settings_title,
@@ -245,6 +275,12 @@
         )
     }
 
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+
+        gridItemsAdapter = GridViewAdapter(requireContext(), gridItems)
+    }
+
     override fun onResume() {
         super.onResume()
         (activity as? AppCompatActivity)?.supportActionBar?.setDisplayHomeAsUpEnabled(false)
@@ -253,6 +289,8 @@
             "",
             R.drawable.ic_settings_grid
         )
+        createGridItems()
+        gridItemsAdapter.notifyDataSetChanged()
     }
 
     override fun onCreateView(
@@ -267,7 +305,7 @@
         super.onViewCreated(view, savedInstanceState)
         gridView = view.findViewById(R.id.grid_view)
         gridView.numColumns = resources.getInteger(R.integer.grid_view_columns)
-        gridView.adapter = GridViewAdapter(requireContext(), gridItems)
+        gridView.adapter = gridItemsAdapter
         gridView.onItemClickListener =
             AdapterView.OnItemClickListener { _, _, position, _ ->
                 val gridItem: GridItem = gridItems.get(position)
@@ -281,6 +319,4 @@
                     requireActivity().startActivity(gridItem.gridIntent)
             }
     }
-
-
 }
diff --git a/app/src/main/res/drawable/ic_store.xml b/app/src/main/res/drawable/ic_store.xml
new file mode 100644
index 0000000..6663d39
--- /dev/null
+++ b/app/src/main/res/drawable/ic_store.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:textColorPrimary"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M7,18c-1.1,0 -1.99,0.9 -1.99,2S5.9,22 7,22s2,-0.9 2,-2 -0.9,-2 -2,-2zM17,18c-1.1,0 -1.99,0.9 -1.99,2s0.89,2 1.99,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM15.55,13c0.75,0 1.41,-0.41 1.75,-1.03l3.58,-6.49c0.37,-0.66 -0.11,-1.48 -0.87,-1.48L5.21,4l-0.94,-2L1,2v2h2l3.6,7.59 -1.35,2.44C4.52,15.37 5.48,17 7,17h12v-2L7,15l1.1,-2h7.45zM6.16,6h12.15l-2.76,5L8.53,11L6.16,6z" />
+</vector>
diff --git a/build.gradle b/build.gradle
index 70fc287..88e693d 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.1.2'
+        classpath 'com.android.tools.build:gradle:7.2.0'
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.0-RC"
 
         // NOTE: Do not place your application dependencies here; they belong
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 92e79a1..3429f70 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
 #Wed Oct 20 14:49:44 CEST 2021
 distributionBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
 distributionPath=wrapper/dists
 zipStorePath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME