OmniControl: Made ChargingControlSettings than a activity

It allow to show the ChargingControl Settings when the notification is clicked.

Change-Id: I88d32179fb229f558f86319df29b2fb6be0514df
Signed-off-by: micky387 <mickaelsaibi@free.fr>
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1d83391..0f1ed66 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -47,15 +47,25 @@
 
         <!-- Charging control settings (Battery category) -->
         <activity
-            android:name=".ChargingControlSettings"
-            android:exported="true"
-            android:label="@string/charging_control_title">
+            android:name=".ChargingControlSettingsActivity"
+            android:exported="false"
+            android:label="@string/app_name"
+            android:launchMode="singleTask" >
             <intent-filter>
-                <action android:name="org.omnirom.control.CHARGING_CONTROL_SETTINGS" />
+                <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
+        <activity-alias
+            android:name=".ChargingControlSettings"
+            android:exported="true"
+            android:targetActivity="ChargingControlSettingsActivity"
+            android:label="@string/charging_control_title">
+            <intent-filter>
+                <action android:name="org.omnirom.control.CHARGING_CONTROL_SETTINGS"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+            </intent-filter>
+        </activity-alias>
     </application>
 
 </manifest>
diff --git a/app/src/main/java/org/omnirom/control/ChargingControlSettings.java b/app/src/main/java/org/omnirom/control/ChargingControlSettings.java
index b00be47..32207ed 100644
--- a/app/src/main/java/org/omnirom/control/ChargingControlSettings.java
+++ b/app/src/main/java/org/omnirom/control/ChargingControlSettings.java
@@ -32,7 +32,6 @@
 import java.util.stream.Stream;
 
 import org.omnirom.control.R;
-import org.omnirom.control.AbstractSettingsFragment;
 
 import org.omnirom.control.health.StartTimePreference;
 import org.omnirom.control.health.TargetTimePreference;
@@ -44,6 +43,7 @@
 import androidx.annotation.XmlRes;
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
 import omnirom.preference.SystemSettingSwitchPreference;
 
 import static omnirom.health.HealthInterface.MODE_AUTO;
@@ -52,7 +52,7 @@
 
 import org.omnirom.omnilib.utils.OmniSettings;
 
-public class ChargingControlSettings extends AbstractSettingsFragment implements
+public class ChargingControlSettings extends PreferenceFragmentCompat implements
         Preference.OnPreferenceChangeListener {
     private static final String TAG = ChargingControlSettings.class.getSimpleName();
 
@@ -76,21 +76,6 @@
     private HealthInterface mHealthInterface;
 
     @Override
-    public String getFragmentTitle() {
-        return getString(R.string.charging_control_title);
-    }
-
-    @Override
-    public String getFragmentSummary() {
-        return getString(R.string.charging_control_summary);
-    }
-
-    @Override
-    public int getFragmentIcon() {
-        return ICON_RES;
-    }
-
-    @Override
     public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
         setPreferencesFromResource(XML_RES, rootKey);
         final Resources res = getResources();
diff --git a/app/src/main/java/org/omnirom/control/ChargingControlSettingsActivity.java b/app/src/main/java/org/omnirom/control/ChargingControlSettingsActivity.java
new file mode 100644
index 0000000..14e1dc9
--- /dev/null
+++ b/app/src/main/java/org/omnirom/control/ChargingControlSettingsActivity.java
@@ -0,0 +1,57 @@
+/*
+* Copyright (C) 2017 The OmniROM Project
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+package org.omnirom.control;
+
+import android.app.Fragment;
+import android.os.Bundle;
+import android.view.MenuItem;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+
+public class ChargingControlSettingsActivity extends AppCompatActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setContentView(R.layout.settings_activitycompat);
+        setSupportActionBar(findViewById(R.id.toolbar));
+        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+    }
+
+    @Override
+    protected void onPostCreate(Bundle savedInstanceState) {
+        super.onPostCreate(savedInstanceState);
+        getSupportFragmentManager().beginTransaction()
+            .replace(R.id.settings, new ChargingControlSettings())
+            .commit();
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+        case android.R.id.home:
+            finish();
+            return true;
+        default:
+            break;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+}
diff --git a/app/src/main/res/layout/settings_activitycompat.xml b/app/src/main/res/layout/settings_activitycompat.xml
new file mode 100644
index 0000000..3298a21
--- /dev/null
+++ b/app/src/main/res/layout/settings_activitycompat.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:fitsSystemWindows="true">
+
+    <com.google.android.material.appbar.AppBarLayout
+        android:id="@+id/app_bar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:fitsSystemWindows="true">
+
+        <com.google.android.material.appbar.MaterialToolbar
+            android:id="@+id/toolbar"
+            android:layout_width="match_parent"
+            android:layout_height="?attr/actionBarSize"/>
+
+    </com.google.android.material.appbar.AppBarLayout>
+
+    <FrameLayout
+        android:id="@+id/settings"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginStart="@dimen/fragment_side_margin"
+        android:layout_marginEnd="@dimen/fragment_side_margin"
+        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
+
+</androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file