OSDN Git Service

Finish implementing navigation bar buttons
authorBraden Farmer <farmerbb@gmail.com>
Sat, 1 Apr 2017 23:53:45 +0000 (17:53 -0600)
committerBraden Farmer <farmerbb@gmail.com>
Sat, 1 Apr 2017 23:53:45 +0000 (17:53 -0600)
13 files changed:
app/src/main/AndroidManifest.xml
app/src/main/java/com/farmerbb/taskbar/activity/NavigationBarButtonsActivity.java [new file with mode: 0644]
app/src/main/java/com/farmerbb/taskbar/activity/dark/NavigationBarButtonsActivityDark.java [new file with mode: 0644]
app/src/main/java/com/farmerbb/taskbar/fragment/AdvancedFragment.java
app/src/main/java/com/farmerbb/taskbar/fragment/AppearanceFragment.java
app/src/main/java/com/farmerbb/taskbar/fragment/SettingsFragment.java
app/src/main/java/com/farmerbb/taskbar/service/TaskbarService.java
app/src/main/res/values-de/strings.xml
app/src/main/res/values-ja/strings.xml
app/src/main/res/values-ru/strings.xml
app/src/main/res/values/strings.xml
app/src/main/res/xml/pref_advanced.xml
app/src/main/res/xml/pref_navigation_bar_buttons.xml [new file with mode: 0644]

index 36a1a12..011a30a 100644 (file)
             android:excludeFromRecents="true"
             android:launchMode="singleTask"
             android:theme="@style/AppTheme.Incognito.Dark"/>
+        <activity
+            android:name=".activity.NavigationBarButtonsActivity"
+            android:theme="@style/AppTheme.Dialog"/>
+        <activity
+            android:name=".activity.dark.NavigationBarButtonsActivityDark"
+            android:theme="@style/AppTheme.Dialog.Dark"/>
 
         <service android:name=".service.TaskbarService"/>
         <service android:name=".service.StartMenuService"/>
diff --git a/app/src/main/java/com/farmerbb/taskbar/activity/NavigationBarButtonsActivity.java b/app/src/main/java/com/farmerbb/taskbar/activity/NavigationBarButtonsActivity.java
new file mode 100644 (file)
index 0000000..a7ee281
--- /dev/null
@@ -0,0 +1,46 @@
+/* Copyright 2017 Braden Farmer
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.farmerbb.taskbar.activity;
+
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+
+import com.farmerbb.taskbar.R;
+
+public class NavigationBarButtonsActivity extends PreferenceActivity implements Preference.OnPreferenceClickListener {
+
+    @SuppressWarnings("deprecation")
+    @Override
+    protected void onPostCreate(Bundle savedInstanceState) {
+        super.onPostCreate(savedInstanceState);
+        setTitle(R.string.navigation_bar_buttons);
+
+        if(savedInstanceState == null) {
+            addPreferencesFromResource(R.xml.pref_navigation_bar_buttons);
+
+            findPreference("button_back").setOnPreferenceClickListener(this);
+            findPreference("button_home").setOnPreferenceClickListener(this);
+            findPreference("button_recents").setOnPreferenceClickListener(this);
+        }
+    }
+
+    @Override
+    public boolean onPreferenceClick(Preference preference) {
+        setResult(RESULT_OK);
+        return true;
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/farmerbb/taskbar/activity/dark/NavigationBarButtonsActivityDark.java b/app/src/main/java/com/farmerbb/taskbar/activity/dark/NavigationBarButtonsActivityDark.java
new file mode 100644 (file)
index 0000000..14a0ccb
--- /dev/null
@@ -0,0 +1,20 @@
+/* Copyright 2017 Braden Farmer
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.farmerbb.taskbar.activity.dark;
+
+import com.farmerbb.taskbar.activity.NavigationBarButtonsActivity;
+
+public class NavigationBarButtonsActivityDark extends NavigationBarButtonsActivity {}
index e061db1..557dc6f 100644 (file)
@@ -16,6 +16,7 @@
 package com.farmerbb.taskbar.fragment;
 
 import android.annotation.SuppressLint;
+import android.app.Activity;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -37,9 +38,11 @@ import android.widget.LinearLayout;
 
 import com.farmerbb.taskbar.R;
 import com.farmerbb.taskbar.activity.ClearDataActivity;
+import com.farmerbb.taskbar.activity.NavigationBarButtonsActivity;
 import com.farmerbb.taskbar.activity.dark.ClearDataActivityDark;
 import com.farmerbb.taskbar.activity.HomeActivity;
 import com.farmerbb.taskbar.activity.KeyboardShortcutActivity;
+import com.farmerbb.taskbar.activity.dark.NavigationBarButtonsActivityDark;
 import com.farmerbb.taskbar.util.U;
 
 public class AdvancedFragment extends SettingsFragment implements Preference.OnPreferenceClickListener {
@@ -59,6 +62,7 @@ public class AdvancedFragment extends SettingsFragment implements Preference.OnP
             findPreference("launcher").setOnPreferenceClickListener(this);
             findPreference("keyboard_shortcut").setOnPreferenceClickListener(this);
             findPreference("dashboard_grid_size").setOnPreferenceClickListener(this);
+            findPreference("navigation_bar_buttons").setOnPreferenceClickListener(this);
 
             bindPreferenceSummaryToValue(findPreference("dashboard"));
 
@@ -182,6 +186,20 @@ public class AdvancedFragment extends SettingsFragment implements Preference.OnP
                 });
 
                 break;
+            case "navigation_bar_buttons":
+                Intent intent = null;
+
+                switch(pref.getString("theme", "light")) {
+                    case "light":
+                        intent = new Intent(getActivity(), NavigationBarButtonsActivity.class);
+                        break;
+                    case "dark":
+                        intent = new Intent(getActivity(), NavigationBarButtonsActivityDark.class);
+                        break;
+                }
+
+                startActivityForResult(intent, 123);
+                break;
         }
 
         return true;
@@ -212,4 +230,11 @@ public class AdvancedFragment extends SettingsFragment implements Preference.OnP
 
         if(restartTaskbar) restartTaskbar();
     }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if(requestCode == 123 && resultCode == Activity.RESULT_OK) {
+            restartTaskbar();
+        }
+    }
 }
index 9c9aee4..e9d7c04 100644 (file)
@@ -15,6 +15,7 @@
 
 package com.farmerbb.taskbar.fragment;
 
+import android.app.Activity;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
@@ -157,4 +158,12 @@ public class AppearanceFragment extends SettingsFragment implements Preference.O
 
         return true;
     }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if(requestCode == 123 && resultCode == Activity.RESULT_OK) {
+            U.refreshPinnedIcons(getActivity());
+            restartTaskbar();
+        }
+    }
 }
index ebe1f62..6e91cb8 100644 (file)
@@ -15,7 +15,6 @@
 
 package com.farmerbb.taskbar.fragment;
 
-import android.app.Activity;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.os.Build;
@@ -165,14 +164,6 @@ public class SettingsFragment extends PreferenceFragment {
     }
 
     @Override
-    public void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if(requestCode == 123 && resultCode == Activity.RESULT_OK) {
-            U.refreshPinnedIcons(getActivity());
-            restartTaskbar();
-        }
-    }
-
-    @Override
     public void onResume() {
         super.onResume();
 
index f56522e..ee43d4d 100644 (file)
@@ -420,7 +420,7 @@ public class TaskbarService extends Service {
         if(dashboardEnabled && navbarButtonsEnabled) {
             LinearLayout.LayoutParams params2 = (LinearLayout.LayoutParams) dashboardButton.getLayoutParams();
             params2.setMargins(0, 0, 0, 0);
-            dashboardButton.setLayoutParams(params);
+            dashboardButton.setLayoutParams(params2);
         }
 
         layout.setBackgroundColor(backgroundTint);
index a4b32a4..dd6fd8b 100644 (file)
 
     <string name="window_sizes_not_available">Window sizes currently don\'t work on Android O</string>
 
+    <string name="navigation_bar_buttons">Navigation bar buttons</string>
+    <string name="navigation_bar_buttons_description">Add additional buttons to the Taskbar that perform navigation bar actions</string>
+    <string name="button_back">Back</string>
+    <string name="button_home">Home</string>
+    <string name="button_recents">Recents</string>
+
 </resources>
index 445014f..08e6a4c 100644 (file)
 
     <string name="window_sizes_not_available">Window sizes currently don\'t work on Android O</string>
 
+    <string name="navigation_bar_buttons">Navigation bar buttons</string>
+    <string name="navigation_bar_buttons_description">Add additional buttons to the Taskbar that perform navigation bar actions</string>
+    <string name="button_back">Back</string>
+    <string name="button_home">Home</string>
+    <string name="button_recents">Recents</string>
+
 </resources>
index 216c6a1..cdb2175 100644 (file)
 
     <string name="window_sizes_not_available">Window sizes currently don\'t work on Android O</string>
 
+    <string name="navigation_bar_buttons">Navigation bar buttons</string>
+    <string name="navigation_bar_buttons_description">Add additional buttons to the Taskbar that perform navigation bar actions</string>
+    <string name="button_back">Back</string>
+    <string name="button_home">Home</string>
+    <string name="button_recents">Recents</string>
+
 </resources>
index 22bf976..eb89dae 100644 (file)
 
     <string name="pref_header_appearance">Appearance</string>
     <string name="dashboard">Enable widget support</string>
-    <string name="dashboard_description">Adds a button to the Taskbar that displays a grid of widgets</string>
+    <string name="dashboard_description">Adds a button to the Taskbar that displays widgets when pressed</string>
     <string name="dashboard_grid_size">Widget dashboard grid size</string>
 
     <string name="click_to_add_widget">Click to add widget</string>
 
     <string name="window_sizes_not_available">Window sizes currently don\'t work on Android O</string>
 
+    <string name="navigation_bar_buttons">Navigation bar buttons</string>
+    <string name="navigation_bar_buttons_description">Add additional buttons to the Taskbar that perform navigation bar actions</string>
+    <string name="button_back">Back</string>
+    <string name="button_home">Home</string>
+    <string name="button_recents">Recents</string>
+
 </resources>
index 8640c09..8e7d713 100644 (file)
         android:title="@string/dashboard_grid_size" />
 
     <Preference
+        android:key="navigation_bar_buttons"
+        android:title="@string/navigation_bar_buttons"
+        android:summary="@string/navigation_bar_buttons_description" />
+
+    <Preference
         android:key="clear_pinned_apps"
         android:title="@string/clear_pinned_apps"/>
 
diff --git a/app/src/main/res/xml/pref_navigation_bar_buttons.xml b/app/src/main/res/xml/pref_navigation_bar_buttons.xml
new file mode 100644 (file)
index 0000000..d6272fa
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2017 Braden Farmer
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <CheckBoxPreference
+        android:defaultValue="false"
+        android:key="button_back"
+        android:title="@string/button_back" />
+
+    <CheckBoxPreference
+        android:defaultValue="false"
+        android:key="button_home"
+        android:title="@string/button_home" />
+
+    <CheckBoxPreference
+        android:defaultValue="false"
+        android:key="button_recents"
+        android:title="@string/button_recents" />
+
+</PreferenceScreen>