diff --git a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/GameActivity.java b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/GameActivity.java
index f7050e99..946ef883 100644
--- a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/GameActivity.java
+++ b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/GameActivity.java
@@ -1,6 +1,7 @@
package com.panda3ds.pandroid.app;
import android.content.Intent;
+import android.os.Build;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
@@ -72,6 +73,9 @@ public class GameActivity extends BaseActivity {
InputHandler.reset();
InputHandler.setMotionDeadZone(InputMap.getDeadZone());
InputHandler.setEventListener(inputListener);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
+ getTheme().applyStyle(R.style.GameActivityNavigationBar, true);
+ }
}
@Override
diff --git a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/base/BasePreferenceFragment.java b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/base/BasePreferenceFragment.java
index 9482df1d..4f5c5761 100644
--- a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/base/BasePreferenceFragment.java
+++ b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/base/BasePreferenceFragment.java
@@ -3,6 +3,7 @@ package com.panda3ds.pandroid.app.base;
import android.annotation.SuppressLint;
import androidx.annotation.StringRes;
+import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
@@ -22,6 +23,9 @@ public abstract class BasePreferenceFragment extends PreferenceFragmentCompat {
}
protected void setActivityTitle(@StringRes int titleId) {
- ((AppCompatActivity) requireActivity()).getSupportActionBar().setTitle(titleId);
+ ActionBar header = ((AppCompatActivity) requireActivity()).getSupportActionBar();
+ if (header != null) {
+ header.setTitle(titleId);
+ }
}
}
diff --git a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/main/SettingsFragment.java b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/main/SettingsFragment.java
index bfe33a2b..4ac73661 100644
--- a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/main/SettingsFragment.java
+++ b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/main/SettingsFragment.java
@@ -8,7 +8,7 @@ import com.panda3ds.pandroid.R;
import com.panda3ds.pandroid.app.PreferenceActivity;
import com.panda3ds.pandroid.app.base.BasePreferenceFragment;
import com.panda3ds.pandroid.app.preferences.AppearancePreferences;
-import com.panda3ds.pandroid.app.preferences.DeveloperPreferences;
+import com.panda3ds.pandroid.app.preferences.AdvancedPreferences;
import com.panda3ds.pandroid.app.preferences.InputPreferences;
public class SettingsFragment extends BasePreferenceFragment {
@@ -17,6 +17,6 @@ public class SettingsFragment extends BasePreferenceFragment {
setPreferencesFromResource(R.xml.start_preferences, rootKey);
setItemClick("input", (item) -> PreferenceActivity.launch(requireContext(), InputPreferences.class));
setItemClick("appearance", (item)-> PreferenceActivity.launch(requireContext(), AppearancePreferences.class));
- setItemClick("developer", (item)-> PreferenceActivity.launch(requireContext(), DeveloperPreferences.class));
+ setItemClick("advanced", (item)-> PreferenceActivity.launch(requireContext(), AdvancedPreferences.class));
}
}
diff --git a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/DeveloperPreferences.java b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/AdvancedPreferences.java
similarity index 90%
rename from src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/DeveloperPreferences.java
rename to src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/AdvancedPreferences.java
index f131f0a0..fea8aef0 100644
--- a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/DeveloperPreferences.java
+++ b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/AdvancedPreferences.java
@@ -13,11 +13,11 @@ import com.panda3ds.pandroid.app.base.BasePreferenceFragment;
import com.panda3ds.pandroid.app.services.LoggerService;
import com.panda3ds.pandroid.data.config.GlobalConfig;
-public class DeveloperPreferences extends BasePreferenceFragment {
+public class AdvancedPreferences extends BasePreferenceFragment {
@Override
public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
- setPreferencesFromResource(R.xml.developer_preferences, rootKey);
- setActivityTitle(R.string.developer_options);
+ setPreferencesFromResource(R.xml.advanced_preferences, rootKey);
+ setActivityTitle(R.string.advanced_options);
setItemClick("performanceMonitor", pref -> GlobalConfig.set(GlobalConfig.KEY_SHOW_PERFORMANCE_OVERLAY, ((SwitchPreference) pref).isChecked()));
setItemClick("shaderJit", pref -> GlobalConfig.set(GlobalConfig.KEY_SHADER_JIT, ((SwitchPreference) pref).isChecked()));
diff --git a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/AppearancePreferences.java b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/AppearancePreferences.java
index dea4e261..04c89d9a 100644
--- a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/AppearancePreferences.java
+++ b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/AppearancePreferences.java
@@ -15,7 +15,7 @@ public class AppearancePreferences extends BasePreferenceFragment {
public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
setPreferencesFromResource(R.xml.appearance_preference, rootKey);
- ((BaseActivity) requireActivity()).getSupportActionBar().setTitle(R.string.appearance);
+ setActivityTitle(R.string.appearance);
SingleSelectionPreferences themePreference = findPreference("theme");
themePreference.setSelectedItem(GlobalConfig.get(GlobalConfig.KEY_APP_THEME));
diff --git a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/ControllerMapperPreferences.java b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/ControllerMapperPreferences.java
index e59adfbe..f643c88f 100644
--- a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/ControllerMapperPreferences.java
+++ b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/ControllerMapperPreferences.java
@@ -37,7 +37,9 @@ public class ControllerMapperPreferences extends Fragment {
currentProfile = ControllerProfileManager.get(getArguments().getString("profile")).clone();
- ((BaseActivity) requireActivity()).getSupportActionBar().hide();
+ if (((BaseActivity)requireActivity()).getSupportActionBar() != null) {
+ ((BaseActivity) requireActivity()).getSupportActionBar().hide();
+ }
mapper = view.findViewById(R.id.mapper);
mapper.initialize(this::onLocationChanged, currentProfile);
diff --git a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/InputMapPreferences.java b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/InputMapPreferences.java
index b4d148b9..10fa10f9 100644
--- a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/InputMapPreferences.java
+++ b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/InputMapPreferences.java
@@ -27,7 +27,7 @@ public class InputMapPreferences extends BasePreferenceFragment implements Activ
public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
setPreferencesFromResource(R.xml.input_map_preferences, rootKey);
- ((BaseActivity) requireActivity()).getSupportActionBar().setTitle(R.string.controller_mapping);
+ setActivityTitle(R.string.controller_mapping);
for (KeyName key : KeyName.values()) {
if (key == KeyName.NULL) {
diff --git a/src/pandroid/app/src/main/res/drawable/color_surface.xml b/src/pandroid/app/src/main/res/drawable/color_surface.xml
new file mode 100644
index 00000000..b8655b87
--- /dev/null
+++ b/src/pandroid/app/src/main/res/drawable/color_surface.xml
@@ -0,0 +1,8 @@
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pandroid/app/src/main/res/drawable/switch_thumb.xml b/src/pandroid/app/src/main/res/drawable/switch_thumb.xml
new file mode 100644
index 00000000..02f1ab02
--- /dev/null
+++ b/src/pandroid/app/src/main/res/drawable/switch_thumb.xml
@@ -0,0 +1,37 @@
+
+
+ -
+
+
-
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+ -
+
+
-
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pandroid/app/src/main/res/drawable/switch_track.xml b/src/pandroid/app/src/main/res/drawable/switch_track.xml
new file mode 100644
index 00000000..b665789c
--- /dev/null
+++ b/src/pandroid/app/src/main/res/drawable/switch_track.xml
@@ -0,0 +1,19 @@
+
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pandroid/app/src/main/res/layout-land/activity_main.xml b/src/pandroid/app/src/main/res/layout-land/activity_main.xml
index fa4cfbca..9741809d 100644
--- a/src/pandroid/app/src/main/res/layout-land/activity_main.xml
+++ b/src/pandroid/app/src/main/res/layout-land/activity_main.xml
@@ -5,7 +5,8 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context=".app.MainActivity">
+ tools:context=".app.MainActivity"
+ android:background="?colorSurface">
+ style="@style/ThemedNavigationBottom"
+ android:background="@drawable/color_surface"/>
\ No newline at end of file
diff --git a/src/pandroid/app/src/main/res/layout/activity_input_map.xml b/src/pandroid/app/src/main/res/layout/activity_input_map.xml
index cbacc64e..79249e62 100644
--- a/src/pandroid/app/src/main/res/layout/activity_input_map.xml
+++ b/src/pandroid/app/src/main/res/layout/activity_input_map.xml
@@ -4,7 +4,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
- android:gravity="center">
+ android:gravity="center"
+ android:background="?colorSurface">
+ tools:context=".app.MainActivity"
+ android:background="?colorSurface">
+ style="@style/ThemedNavigationBottom"
+ android:background="@drawable/color_surface"/>
\ No newline at end of file
diff --git a/src/pandroid/app/src/main/res/layout/activity_preference.xml b/src/pandroid/app/src/main/res/layout/activity_preference.xml
index 54b3d364..401c3d86 100644
--- a/src/pandroid/app/src/main/res/layout/activity_preference.xml
+++ b/src/pandroid/app/src/main/res/layout/activity_preference.xml
@@ -3,7 +3,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
- android:orientation="vertical">
+ android:orientation="vertical"
+ android:background="?colorSurface">
+ android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:paddingStart="15dp"
+ android:paddingEnd="15dp"/>
diff --git a/src/pandroid/app/src/main/res/values-pt-rBR/strings.xml b/src/pandroid/app/src/main/res/values-pt-rBR/strings.xml
index 1198d66b..eeeb842b 100644
--- a/src/pandroid/app/src/main/res/values-pt-rBR/strings.xml
+++ b/src/pandroid/app/src/main/res/values-pt-rBR/strings.xml
@@ -45,8 +45,8 @@
Abrir arquivo
Criar novo
Executando \"%s\" ...
- Opções de desenvolvedor
- Depuração, mostrar fps, etc.
+ Opções avançada.
+ Depuração, mostrar fps, etc.
Monitor de desempenho
Mostrar um overlay com fps, memoria, etc.
Depuração
diff --git a/src/pandroid/app/src/main/res/values-v27/themes.xml b/src/pandroid/app/src/main/res/values-v27/themes.xml
new file mode 100644
index 00000000..8e960864
--- /dev/null
+++ b/src/pandroid/app/src/main/res/values-v27/themes.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pandroid/app/src/main/res/values-v29/themes.xml b/src/pandroid/app/src/main/res/values-v29/themes.xml
new file mode 100644
index 00000000..31f7b5a2
--- /dev/null
+++ b/src/pandroid/app/src/main/res/values-v29/themes.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pandroid/app/src/main/res/values/strings.xml b/src/pandroid/app/src/main/res/values/strings.xml
index 4c64439c..47cda8f0 100644
--- a/src/pandroid/app/src/main/res/values/strings.xml
+++ b/src/pandroid/app/src/main/res/values/strings.xml
@@ -46,8 +46,8 @@
Open file
Create new
Running \"%s\" ...
- Developer options
- Logger, FPS Counter, etc.
+ Advanced options
+ Logger, performance statistics, etc.
Performance monitor
Show overlay with fps, memory, etc.
Logger
diff --git a/src/pandroid/app/src/main/res/values/themes.xml b/src/pandroid/app/src/main/res/values/themes.xml
index 343fab28..422299a4 100644
--- a/src/pandroid/app/src/main/res/values/themes.xml
+++ b/src/pandroid/app/src/main/res/values/themes.xml
@@ -5,6 +5,22 @@
- @style/AlertDialog
- @style/PreferenceTheme
+ - ?colorSurface
+ - ?isLightTheme
+
+ - @style/SwitchStyle
+ - @style/SwitchStyle
+ - @style/SwitchStyle
+
+
+
-
+
diff --git a/src/pandroid/app/src/main/res/xml/developer_preferences.xml b/src/pandroid/app/src/main/res/xml/advanced_preferences.xml
similarity index 94%
rename from src/pandroid/app/src/main/res/xml/developer_preferences.xml
rename to src/pandroid/app/src/main/res/xml/advanced_preferences.xml
index 96ce8906..ce77a6e4 100644
--- a/src/pandroid/app/src/main/res/xml/developer_preferences.xml
+++ b/src/pandroid/app/src/main/res/xml/advanced_preferences.xml
@@ -12,6 +12,7 @@
android:key="loggerService"
app:iconSpaceReserved="false"
app:title="@string/pref_logger_service_title"
+ app:defaultValue="true"
android:summary="@string/pref_logger_service_summary"/>
\ No newline at end of file