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